Главная страница
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.068 c
3-1081189645
leonidus
2004-04-05 22:27
2004.05.02
Проблема с кодировкой DBF


3-1081229956
Russko
2004-04-06 09:39
2004.05.02
Ошибка при открытии БД


3-1081007600
Unk
2004-04-03 19:53
2004.05.02
Проблема записи в BLOB поле: ORA-01403: no data found


3-1081082712
SergP
2004-04-04 16:45
2004.05.02
integer --> datetime. Как это сделать в запросе?


3-1081353520
Gennadiy
2004-04-07 19:58
2004.05.02
Как соеденить два IBQuery