Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.31;
Скачать: CL | DM;

Вниз

Click запределами области приложения   Найти похожие ветки 

 
Юрий Федоров ©   (2002-10-18 14:02) [0]

Добрый день.
Есть модальный диалог, как в то время, когда он показан, отследить события клика мышью за пределами диалога и за пределами самого приложения?


 
MBo ©   (2002-10-18 14:05) [1]

Capture Mouse помогает?


 
Юрий Федоров ©   (2002-10-18 14:06) [2]

>MBo
Не в курсе, что это. Попордобнее можно?


 
Starkom   (2002-10-18 14:08) [3]

лови события типа WM_NCLBUTTONCLICK и вообще все, начинающиеся с WM_NC...


 
Юрий Федоров ©   (2002-10-18 14:22) [4]

Насколько я понимаю, WM_NC... приходят, когда действие происходит на неклиентской области окна, а в данном случае оно вообще за его пределами.
По крайней мере
WM_NCLBUTTONDOWN не приходит, я проверил


 
MBo ©   (2002-10-18 14:29) [5]

Увы, я неправ - SetCapture и MouseCapture помогают, только если мышь с нажатой кнопкой вышла за пределы окна.
Значит, хук придется ставить


 
Юрий Федоров ©   (2002-10-18 14:33) [6]

>MBo
Хук - это трагично :)
может быть я что-то не догоняю, и можно сделать проще?
Задача такая - аналог ComboBox, вниз выпадает форма, которая должна вести себя так же, как выпадающий список ComboBox"a.
Пока поставил ее разрушение на ее собственный Deactivate, но происходит это только по клику в области модального диалога.
Наверняка кому-то приходилось делать подобные вещи.
Есть какие-нибудь идеи еще?


 
Skier ©   (2002-10-18 14:49) [7]

>Юрий Федоров
Попробуй ловить CM_CANCELMODE


 
Юрий Федоров ©   (2002-10-18 15:15) [8]

>Skier
не помогает :(


 
Игорь Шевченко ©   (2002-10-18 15:38) [9]

Юрий Федоров © (18.10.02 14:33)

Поглядите в Source\Vcl\DBGrids.pas TPopupListBox. Там реализована эта функциональность.

Также может помочь обработка CM_CANCELMODE и WM_KILLFOCUS


 
Игорь Шевченко ©   (2002-10-18 15:48) [10]

Кстати, hint: форма не должна быть модальной.


 
pusrg ©   (2002-10-18 19:38) [11]

Дык, а если при потере фокуса приложением, также обрабатывать TApplication.OnDeactivate.

А при показе диалогового окна показывать его не через ShowModal, а через Show с стилем формы FormStyle:=fsStayOnTop.
В любом случае клики мышкой внутри приложения можно отловить по разному и на них убивать требуемую форму.


 
Юрий Зотов ©   (2002-10-18 23:05) [12]

> аналог ComboBox,

Если я правильно понимаю, стиль WS_POPUP решает вопрос.


 
Kibitzer ©   (2002-10-19 00:15) [13]


> Задача такая - аналог ComboBox, вниз выпадает форма, которая
> должна вести себя так же, как выпадающий список ComboBox"a.

Вот здесь есть пример: http://akzhan.midi.ru/devcorner/akdeltnt-content/akdeltnt-0075.html



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

Текущий архив: 2002.10.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
1-101283
Дмитрий Астрохов
2002-10-22 15:55
2002.10.31
Просьба.


3-101110
saf
2002-10-09 18:26
2002.10.31
Exel-Paradox


3-101111
officeman
2002-10-09 22:26
2002.10.31
Как КОРРЕКТНО разместить картинку в DBGRID-е ???


4-101580
Zion
2002-09-19 18:23
2002.10.31
Вопрос тоже кстати из-за неопытности....


1-101328
AleV86
2002-10-19 20:17
2002.10.31
RichEdit