Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Отловить событие максимизации/восстановления формы   Найти похожие ветки 

 
Juliet   (2004-04-14 13:20) [0]

Всем доброго дня!
Может кто подскажет - как отловить событие максимизации/восстановления формы при двойном щелчке по заголовку формы? (перехват сообщения WN_SYSCOMMAND в данном случае результата не дает)


 
TUser ©   (2004-04-14 13:37) [1]

OnCanResize


 
Юрий Зотов ©   (2004-04-14 13:38) [2]

А позвольте Вам не поверить. Вот как раз WM_SYSCOMMAND и дает.


 
Juliet   (2004-04-14 13:44) [3]

WM_SYSCOMMAND срабатывает только в случае макимизации/восстановления при нажатии соответсвующей кнопки в углу окна


 
TUser ©   (2004-04-14 14:01) [4]

Нет. Он работает всегда.


 
Юрий Зотов ©   (2004-04-14 14:07) [5]

> Juliet   (14.04.04 13:44) [3]

А позвольте снова Вам не поверить?

type
 TForm1 = class(TForm)
 private
   procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
 end;

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
 inherited;
 Caption := IntToHex(Message.CmdType and $FFF0, 8)
end;

Что видим в Caption при кликах по кнопкам и заголовку? Правильно - одно и то же. Так будем спорить, или как?


 
Juliet   (2004-04-14 15:28) [6]

Юрий Зотов, спасибо за ответы, Ваш пример действительно нормально работает
Если бы мне еще кто-нибудь объяснил, почему у меня в таком виде (привожу ниже код) ВСЕ ЭТО НЕ РАБОТАЕТ? Т.Е при двойном клике на заголовке я не получаю сообщения MAX
procedure FORM1.WMSysCommand(var Message: TWMSysCommand);
begin
inherited;
case Message.CmdType of
 SC_MAXIMIZE: ShowMessage("MAX");
 SC_RESTORE: ShowMessage("NORMAL");
end;
end;


 
clickmaker ©   (2004-04-14 15:31) [7]

> Juliet   (14.04.04 15:28) [6]
Из MSDN

In WM_SYSCOMMAND messages, the four low-order bits of the uCmdType parameter are used internally by the system. To obtain the correct result when testing the value of uCmdType, an application must combine the value 0xFFF0 with the uCmdType value by using the bitwise AND operator.


 
Juliet   (2004-04-14 15:51) [8]

Спасибо, приняла к сведению и исполнению
все получилось



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
14-1081451242
УНЯ
2004-04-08 23:07
2004.05.02
Ж


14-1081848497
wHammer
2004-04-13 13:28
2004.05.02
Меч распаковать .cab


14-1081694979
Piter
2004-04-11 18:49
2004.05.02
Quake2 написана под .NET? :)


14-1081134937
Sun bittern
2004-04-05 07:15
2004.05.02
А как это на Delphi будет?


4-1078415133
GrayFace
2004-03-04 18:45
2004.05.02
Как сделать приложение, изменяющее разрешение?