Главная страница
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
1-1081873908
AsD
2004-04-13 20:31
2004.05.02
BPL и формы


9-1069678339
Eagle Owl
2003-11-24 15:52
2004.05.02
DirectX Help


1-1082060641
Vior
2004-04-16 00:24
2004.05.02
Нехватает LongInteger в ТурбоПаскале


4-1078875420
GanibalLector
2004-03-10 02:37
2004.05.02
Сервер RPC недоступен


1-1081958058
DarkSet
2004-04-14 19:54
2004.05.02
Защита файлов от доступа