Перехват нажатия на системные кнопки формы (закрытие, минимизация окна и т.д.)

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Сообщение WM_SYSCOMMAND приходит перед выполнением соответствующей команды, что дает возможность переопределить код.

WM_SYSCOMMAND

uCmdType = wParam; // type of system command requested

xPos = LOWORD(lParam); // horizontal postion, in screen coordinates

yPos = HIWORD(lParam); // vertical postion, in screen coordinates

Например, перехват события минимизации окна приложения:

type

TMain = class(TForm)

protected

procedure WMGetSysCommand(var message : TMessage);

message WM_SYSCOMMAND;

end;

// Обработка сообщения WM_SYSCOMMAND

procedure TMain.WMGetSysCommand(var message : TMessage) ;

begin

if (message.wParam = SC_MINIMIZE) then

Main.Visible := False

else

inherited;

end;

{/codecitation}

Добавить комментарий