Windows - usar as transparencias do 2000 |
Top Previous Next |
|
procedure TForm1.Button1Click(Sender: TObject); const WS_EX_LAYERED = $00080000; LMA_COLORKEY = $00000001; LMA_ALPHA = $00000002; TRANSPARENCIA = 100; // 1..255; type TLayerFunc = function(hwnd : HWND; crKey : COLORREF; bAlpha : BYTE; dwFlags : DWORD) : Boolean; stdcall; var ExtStyle : LongInt; LayerFunc : TLayerFunc; LibHandle : HModule; begin LibHandle := LoadLibrary(user32); if LibHandle > 0 then begin LayerFunc := GetProcAddress(LibHandle, 'SetLayeredWindowAttributes'); if Assigned(LayerFunc) then begin ExtStyle := GetWindowLong(Handle, GWL_EXSTYLE); SetWindowLong(Handle, GWL_EXSTYLE, ExtStyle or WS_EX_LAYERED); LayerFunc(Handle, RGB(255,0,0), TRANSPARENCIA, LMA_ALPHA or LMA_COLORKEY); end; FreeLibrary(LibHandle); end; end; |