Перехват нажатия на системные кнопки формы (закрытие, минимизация окна и т.д.)
{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}