(** ПРОЗРАЧНОСТЬ **)
procedure MyOnTimer(h, msg, idevent, dwTime: LongWord);
begin
if Transparency > 100 then begin
KillTimer(WizardForm.Handle, TimerID);
end;
Transparency := Transparency + 5;
SetLayeredWindowAttributes(WizardForm.Handle, $FF00FF, 255 - Transparency, 1 or 2)
end;
function MyProc(h:HWND; Msg, wParam, lParam: LongInt): LongInt;
var
ExStyle: LongInt;
begin
if Msg = 534 then begin
ExStyle := GetWindowLong(WizardForm.Handle, GWL_EXSTYLE);
if not SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, DraggingEnabled, 0) then begin
Exit;
end;
SetWindowLong(WizardForm.Handle, GWL_EXSTYLE, GetWindowLong(WizardForm.Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
if (Transparency = 0) and (DraggingEnabled <> 0) then begin
TimerID := SetTimer(WizardForm.Handle, 1, 10, WrapTimerProc(@MyOnTimer, 4));
end;
end;
if Msg = 533 then begin
Transparency := 0;
SetWindowLong(WizardForm.Handle, GWL_EXSTYLE, GetWindowLong(WizardForm.Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(WizardForm.Handle, $FF00FF, 255, 1 or 2);
end;
Result := CallWindowProc(oldWFproc, h, Msg, wParam, lParam);
end;
(** КОНЕЦ **)