![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Click запределами области приложения [D6, Win2k]
Юрий Федоров © (2002-10-18 14:02:00)Добрый день.
Есть модальный диалог, как в то время, когда он показан, отследить события клика мышью за пределами диалога и за пределами самого приложения?
Kibitzer (2002-10-19 00:15:00) [1]
> Задача такая - аналог ComboBox, вниз выпадает форма, которая
> должна вести себя так же, как выпадающий список ComboBox"a.
Вот здесь есть пример: http://akzhan.midi.ru/devcorner/akdeltnt-content/akdeltnt-0075.html
Юрий Зотов (2002-10-18 23:05:00) [2]> аналог ComboBox,
Если я правильно понимаю, стиль WS_POPUP решает вопрос.
pusrg (2002-10-18 19:38:00) [3]Дык, а если при потере фокуса приложением, также обрабатывать TApplication.OnDeactivate.
А при показе диалогового окна показывать его не через ShowModal, а через Show с стилем формы FormStyle:=fsStayOnTop.
В любом случае клики мышкой внутри приложения можно отловить по разному и на них убивать требуемую форму.
Игорь Шевченко (2002-10-18 15:48:00) [4]Кстати, hint: форма не должна быть модальной.
Игорь Шевченко (2002-10-18 15:38:00) [5]Юрий Федоров © (18.10.02 14:33)
Поглядите в Source\Vcl\DBGrids.pas TPopupListBox. Там реализована эта функциональность.
Также может помочь обработка CM_CANCELMODE и WM_KILLFOCUS
Юрий Федоров (2002-10-18 15:15:00) [6]>Skier
не помогает :(
Skier (2002-10-18 14:49:00) [7]>Юрий Федоров
Попробуй ловить CM_CANCELMODE
Юрий Федоров (2002-10-18 14:33:00) [8]>MBo
Хук - это трагично :)
может быть я что-то не догоняю, и можно сделать проще?
Задача такая - аналог ComboBox, вниз выпадает форма, которая должна вести себя так же, как выпадающий список ComboBox"a.
Пока поставил ее разрушение на ее собственный Deactivate, но происходит это только по клику в области модального диалога.
Наверняка кому-то приходилось делать подобные вещи.
Есть какие-нибудь идеи еще?
MBo (2002-10-18 14:29:00) [9]Увы, я неправ - SetCapture и MouseCapture помогают, только если мышь с нажатой кнопкой вышла за пределы окна.
Значит, хук придется ставить
Юрий Федоров (2002-10-18 14:22:00) [10]Насколько я понимаю, WM_NC... приходят, когда действие происходит на неклиентской области окна, а в данном случае оно вообще за его пределами.
По крайней мере
WM_NCLBUTTONDOWN не приходит, я проверил
Starkom (2002-10-18 14:08:00) [11]лови события типа WM_NCLBUTTONCLICK и вообще все, начинающиеся с WM_NC...
Юрий Федоров (2002-10-18 14:06:00) [12]>MBo
Не в курсе, что это. Попордобнее можно?
MBo (2002-10-18 14:05:00) [13]Capture Mouse помогает?