На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / ОС и железо / Обработка WM_SysCommand Сделать домашней страницей Добавить в избранное Написать писмо

Обработка WM_SysCommand


Автор: Neil J. Rubenking

Системное меню в приложениях 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;


Copyright ©   "DELPHI WORLD"   E-mail:   delphiworld@mail.ru  http://www.delphiworld.narod.ru
Источник получения информации: http://www.delphiworld.narod.ru
Hosted by uCoz