Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сделать на всей форме (в т.ч. и ее контролах) прозрачность. w9x [D6, Win95/98, WinME]


xrip ©   (2002-05-23 22:48:00) 

Сделать например как в винампе теже скины, т.е. например розовый цвет на всей форме сделать прозрачным. пробовал делать маленькие треугольнички(СreatePolygonRgn), но сами понимаете что это гемор и тормозуха... Подскажите более грамотный алгоритм пли.


easy   (2002-05-27 12:51:00) [1]

//перевод с бейсика

procedure tform1.lGetRegion(pic:TImage{имидж с картинкой}; lBackColor:TColor{цвет, который станет прозрачным});
var
lRgn,lSkinRgn,lStart,lX,lY,lHeight,lWidth: Longword;

begin
lSkinRgn := CreateRectRgn(0,0,0,0);
lHeight:=pic.Height;
lWidth:=pic.Width;
For lX := 0 To (lHeight - 1) do
begin
lY := 0;
While lY < lWidth do
begin
While (lY < lWidth) And (GetPixel(pic.Canvas.Handle , lY, lX) = lBackColor) do
lY := lY + 1;
If lY < lWidth Then
begin
lStart := lY;
While (lY < lWidth) And (GetPixel(pic.Canvas.Handle, lY, lX) <> lBackColor) do
lY := lY + 1;
If lY > lWidth Then lY := lWidth;
lRgn := CreateRectRgn(lStart, lX, lY, lX + 1);
CombineRgn (lSkinRgn, lSkinRgn, lRgn, RGN_OR);
DeleteObject (lRgn);
end;
end;
end;
SetWindowRgn (form1.Handle, lSkinRgn, True);
end;


procedure TForm1.FormShow(Sender: TObject);
begin
lgetregion(image1,form1.TransparentColorValue);
end;


Raptor   (2002-05-25 17:25:00) [2]

Вот зайди туда _САМ_ и почитай как это делается.
А если надо все разжевать, то тебе сюда http://delphigfx.mastak.ru/2d/002/2d_2.htm
В конце статьи есть ссылка на примеры с подробными комментариями.


xrip   (2002-05-24 16:16:00) [3]

Еслибы мне нужно было готовое решение я бы первым делом полез искать модуль. Мнебы кто объяснил как это грамотно реализовать _САМОМУ_!


ION T   (2002-05-23 23:32:00) [4]

www.utilmind.com--->Freeware--->TGlassy


Наверх

Титульная страница Поиск, карта сайта Написать письмо