Форум: "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.008 c