Текущий архив: 2002.08.05;
Скачать: CL | DM;
ВнизСделать на всей форме (в т.ч. и ее контролах) прозрачность. w9x Найти похожие ветки
← →
xrip (2002-05-23 22:48) [0]Сделать например как в винампе теже скины, т.е. например розовый цвет на всей форме сделать прозрачным. пробовал делать маленькие треугольнички(СreatePolygonRgn), но сами понимаете что это гемор и тормозуха... Подскажите более грамотный алгоритм пли.
← →
ION T (2002-05-23 23:32) [1]www.utilmind.com--->Freeware--->TGlassy
← →
xrip (2002-05-24 16:16) [2]Еслибы мне нужно было готовое решение я бы первым делом полез искать модуль. Мнебы кто объяснил как это грамотно реализовать _САМОМУ_!
← →
Raptor (2002-05-25 17:25) [3]Вот зайди туда _САМ_ и почитай как это делается.
А если надо все разжевать, то тебе сюда http://delphigfx.mastak.ru/2d/002/2d_2.htm
В конце статьи есть ссылка на примеры с подробными комментариями.
← →
easy (2002-05-27 12:51) [4]//перевод с бейсика
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;
Страницы: 1 вся ветка
Текущий архив: 2002.08.05;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.004 c