Обработка WM_SysCommand

Системное меню в приложениях Delphi ведет двойную жизнь - когда основная форма активна, работает системное меню главной формы, но когда приложение минимизировано, работает системное меню объекта Applictaion. Этот код может оказаться полезным:

CONST SC_UDF = $EFF0;   {должен быть < $F000 и делиться на 16}


procedure TForm1.FormCreate(Sender: TObject);
begin
AppendMenu(GetSystemMenu(Handle, False), MF_STRING, SC_UDF, 'Всегда на&верху');
AppendMenu(GetSystemMenu(Application.Handle, False), MF_STRING, SC_UDF, 'Всегда на&верху');
Application.OnMessage := AppOnMessage;
end;

procedure TForm1.AppOnMessage(VAR Msg: TMsg; VAR Handled: Boolean);
BEGIN
IF Msg.Message <> WM_SYSCOMMAND THEN Exit;
IF Msg.wParam AND $FFF0 <> SC_UDF THEN Exit;
... здесь вы можете включить код для обработки системного сообщения ...
END;
 
« Предыдущая статья   Следующая статья »