Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];

Вниз

Поведение модальности   Найти похожие ветки 

 
Кладов   (2003-05-28 22:44) [0]

Если кто умеет пользоваться всякими там spy, control spy... то может скажет, какое сообщение приходит и какому окну, когда мы щелкаем мышой по запрещенному окну в тот момент, когда наше приложение неактивно. В контексте модальности: модальная форма закрыта другим окном (или не закрыта, не суть важно), но мы щелкаем по другому окну, которое в этот момент запрещено. В VCL бип раздается только если приложение уже активно. Если приложение неактивно, то без всякого бипа активируется окно модальной формы. В KOL так получается только если не используется аплет и щелчок сделан по главной форме, которая выполняет его роль. Не могу добиться, чтобы работало как в VCL при наличии аплета. Простейший эксперимент показывает, что в нормальном режиме, когда есть TKOLApplet, при щелчке на запрещенном окне никакое сообщение вообще (вроде бы) не поступает ни аплету, ни щелкнутой форме. Как же тогда VCL-приложение ловит этот щелчок? Или не ловит, но как-то обрабатывает.


 
SPeller   (2003-05-29 11:04) [1]

У меня получалась как-то "правильная" модальность если показывать модальное окно руками, и ставить главному Disbled через SendMessage( WM_ENABLED );


 
Кладов   (2003-05-29 17:52) [2]

Если послать WM_ENABLE, состояние окна не меняется, и его можно по-прежнму активировать мышкой. Если использовать EnableWindow( Form.Handle ), то эффект тот же, что и раньше: при наличии Applet всегда бип и модальная форма не активируется.


 
SPeller   (2003-05-29 18:46) [3]


> Кладов (29.05.03 17:52)
> Если послать WM_ENABLE, состояние окна не меняется, и его
> можно по-прежнму активировать мышкой. Если использовать
> EnableWindow( Form.Handle ), то эффект тот же, что и раньше:
> при наличии Applet всегда бип и модальная форма не активируется.

EnableWindow - это оболочка для WM_ENABLE:

If the enabled state of a window is changing, a WM_ENABLE message is sent before the EnableWindow function returns. If a window is already disabled, all its child windows are implicitly disabled, although they are not sent a WM_ENABLE message.

Так что, не может WM_ENABLE не работать, если работает EnableWindow. Или я ошибаюсь?


 
Кладов   (2003-05-29 19:25) [4]


> EnableWindow - это оболочка для WM_ENABLE

Наоборот - WM_ENABLE посылается окну, когда работает EnableWindow, но всю работу делает именно EnableWindow. Я проверил.



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

Форум: "KOL";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
14-29582
Calm
2004-01-19 19:50
2004.02.10
Standart Delphi Library.


9-29184
UserName
2003-07-27 02:14
2004.02.10
коллизии и анимированные спрайты


3-29233
Vitalik
2004-01-19 14:30
2004.02.10
Добавление строк в таблицу ч/з DBGrid


3-29226
raul
2004-01-19 18:20
2004.02.10
BDE API


1-29327
Дракоша
2004-01-29 20:32
2004.02.10
Как присвоить обработчик динамически созданому компоненту





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский