• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Transparentcolor

  • Автор темы Автор темы TRT
  • Дата начала Дата начала
T

TRT

Подскажите пожалуйста как сделать указанный мною цвет прозрачным через системную библиотеку user32.dll с помощью таких функций:

const
TransparentColor = clLime;
TransparentPercent = 80;
WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_COLORKEY = 1;
LWA_ALPHA = 2;
GWL_EXSTYLE = (-20);

function SetLayeredWindowAttributes(hwnd: HWND; crKey: TColor; bAlpha: BYTE; dwFlags: DWORD): Boolean;
function GetWindowLong(Wnd: HWnd; Index: Integer): Longint;
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint;

SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED)
SetLayeredWindowAttributes(Handle, TransparentColor,(255 * TransparentPercent) / 100, LWA_COLORKEY)
 
Вопрос снимается :) проблему решил таким образом:

const
TRANSPARENT_COLOR = clLime;
WS_EX_LAYERED = $80000;
GWL_EXSTYLE = (-20);
LWA_COLORKEY = 1;
LWA_ALPHA = 2;

function SetLayeredWindowAttributes(hwnd: HWND; crKey: TColor; bAlpha: byte; dwFlags: DWORD): BOOL; stdcall;
external 'user32.dll';

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Color := TRANSPARENT_COLOR;
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, TRANSPARENT_COLOR, 0, LWA_COLORKEY);
end;
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab