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

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

Полупрозрачная форма [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 есть специальные функции


Наверх

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