![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Полупрозрачная форма [D6, D7, Win2k, WinXP]
Oleg © (2004-05-24 16:31:00)Как в приложении созхдать полупрозрачную форму?
Apihelp (2004-05-25 20:47:00) [1]Полупрозрачную от эллипсной отличаем?
Понял не дурак...
http://forum.3dnews.ru/forums/44/14424/
Oleg (2004-05-25 13:48:00) [2]Спасибо, посмотрел TCustomForm.SetLayeredAttribs, сделал так:
procedure TForm1.FormCreate(Sender: TObject);
var
AStyle: integer;
H: HRGN;
begin
{ 1 } H:= CreateRoundRectRgn( 0, 0, Width, Height, 32, 32 );
{ 2 } SetWindowRgn( Handle, H, true );
{ 3 } AStyle := GetWindowLong(Handle, GWL_EXSTYLE);
{ 4 } if ( AStyle and WS_EX_LAYERED ) = 0 then
{ 5 } SetWindowLong(Handle, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);
{ 6 } SetLayeredWindowAttributes(Handle, clBlack, 230, LWA_ALPHA );
end;
А вообще у TForm с 6го Дельфи есть:
property AlphaBlend default False;
property AlphaBlendValue default 255;
Они собственно и отвечают за прозрачность формы.
Кста, если закомментировать строки 1 и 2, то и под ХР нормально,
если нет то на форме "шум" появляется, кто-нибуть знает что за глюк?
VMcL (2004-05-25 13:26:00) [3]>>Apihelp (24.05.04 21:35) [3]
Полупрозрачную от эллипсной отличаем?
Apihelp (2004-05-24 21:35:00) [4]var
forma: HRGN;
begin
forma:=CreateRoundRectRgn(0,80,200,0,25,25);
SetWindowRgn(Handle,forma,true);
end;
VMcL (2004-05-24 17:19:00) [5]см. TCustomForm.SetLayeredAttribs в Forms.pas.
P.S. Не после 2000, а начиная с 2000.
Oleg (2004-05-24 16:33:00) [6]слыщал, что в WIN API после win2000 есть специальные функции