Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];

Вниз

Форма   Найти похожие ветки 

 
Sniffer   (2002-06-04 15:12) [0]

Привет всем ещё раз, никто не скажет, как сделать форму, например
in shape звезды? Спасибо!


 
MBo   (2002-06-04 15:18) [1]

В FAQ и UBPFD ;)


 
Виктор Щербаков   (2002-06-04 15:19) [2]

Нужно скомбинировать регионы с помощью CombineRgn и назначить получившийся регион форме SetWindowRgn. Делать это нужно в CreateParams.


 
Виктор Щербаков   (2002-06-04 15:20) [3]

MBo © (04.06.02 15:18)
Теперь на сайте кроме FAQ еще одно ругательство появилось :)


 
MBo   (2002-06-04 15:27) [4]

>Виктор Щербаков
Я даже на память не смог написать, пришлось подглядывать ;)


 
Sniffer   (2002-06-04 15:40) [5]

>Виктор Щербаков
А если вместо CombineRgn использовать CreatePolygonRgn?
Кстати такой код вызывает почему-то исчезновение окна :
begin
R := CreateRectRgn(0, 0, 30, 30);
SetWindowRgn(Form1.Handle, R1, True);
end;
Почему?


 
Sniffer   (2002-06-04 15:42) [6]

Сорри,
begin
R := CreateRectRgn(0, 0, 30, 30);
SetWindowRgn(Form1.Handle, R, True);
end;
Почему?


 
Игорь Шевченко   (2002-06-04 16:50) [7]

С регионами - http://www.delphikingdom.com/treasury/hsdialogs.htm


 
Val   (2002-06-04 16:59) [8]

http://www.programme.ru/index.phtml?arch/032001/032001_2_3.htm#top
там есть очень полезная программка "Экзотика", с помощью которой можно по контуру рисунка создать .pas файл


 
Вовчик   (2002-06-06 20:00) [9]

function BitmapToRegion(Bitmap: TBitmap; TransColor: TColor): HRGN;
var
X, Y: Integer;
XStart: Integer;
begin
Result := 0;
with Bitmap do
for Y := 0 to Height - 1 do
begin
X := 0;
while X < Width do //Пропускаем прозрачне точки
begin
while (X < Width) and (Canvas.Pixels[X, Y] = TransColor) do
Inc(X);
if X >= Width then
Break;
XStart := X;
//Пропускаем непрозрачные точки
while (X < Width) and (Canvas.Pixels[X, Y] <> TransColor) do
Inc(X);
// Создаём новый прямоугольный регион и добавляем его к
// региону всей картинки
if Result = 0 then
Result := CreateRectRgn(XStart, Y, X, Y + 1)
else
CombineRgn(Result, Result,
CreateRectRgn(XStart, Y, X, Y + 1), RGN_OR);
end;
end;
end;

procedure TZast.FormCreate(Sender: TObject);
Var
bit: HRGN;
Pict: TBitMap;
begin
Pict:= TBitMap.Create; // Критим переменную типа BitMap
Pict.LoadFromFile("1.bmp"); //Загружаем картинку из файла
Bit:= BitmapToRegion(Pict, 0); //Создаем регион 0-цвет который делаем невидимым (ЧЕРНЫЙ)
SetWindowRgn(Zast.Handle, Bit, true);
end;

Должно помочь



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.024 c
7-35481
sizmrebi
2002-05-23 17:32
2002.08.12
Matrix Printers


1-35317
SemFLY
2002-07-24 01:17
2002.08.12
Заполнение текстового документа из программы...


4-35512
Help
2002-06-03 16:15
2002.08.12
HTML Title


1-35287
BlackSun
2002-07-31 17:13
2002.08.12
ClientSocket и ServerSocket


14-35461
Igor_thief
2002-07-16 12:18
2002.08.12
Компонент





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский