Главная страница
    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.009 c
8-29474
ANubis
2003-08-19 21:10
2004.02.10
Bass.dll описание функции BASS_ChannelGetData


14-29608
Nous Mellon
2004-01-19 13:10
2004.02.10
Тоже GIF :)


14-29604
Nous Mellon
2004-01-18 09:50
2004.02.10
БД


3-29218
DimaF
2004-01-20 07:22
2004.02.10
Переводчик в InterBase


3-29272
gsvserg
2004-01-20 13:40
2004.02.10
Временные таблицы в MSSql Server 2000





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский