Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как отследить click за пределами формы


TheOwl ©   (2013-12-09 11:52:00) 

нажимаю левую клавишу мыши (MouseDown) и не отпуская, тяну курсор за пределы формы, потом возвращаюсь обратно на форму. Нужно как-то проверить, был ли MouseUp за пределами формы.


Dimka Maslov   (2013-12-10 16:33:00) [1]

До тех пока пользоваель тянет курсор окну посылаются сообщения MouseMove c флагом, что кнопка нажата. Как только пользователь отжимает кнопку, окну даётся MouseLeave и сообщения MouseMove перестают посылаться.


Германн   (2013-12-09 13:21:00) [2]


> TheOwl   (09.12.13 12:40) [3]
>
> уже разобрался, GetAsyncKeyState(VK_LBUTTON)
>  

Решение не соответствует условию осталась ли нажатой кнопка. Кнопка могла быть много раз отпущена и снова нажата.


TheOwl   (2013-12-09 12:40:00) [3]

уже разобрался, GetAsyncKeyState(VK_LBUTTON)


MBo   (2013-12-09 12:35:00) [4]

SetCapture
Однако стоит пояснить реальную задачу.


TheOwl   (2013-12-09 12:21:00) [5]

Задача: пользователь нажимает левой кнопкой на элементе в форме (и не отпускает). Устанавливается некий флаг. Потом тянет курсор мыши за пределы формы. Дольше возвращает курсор в область контрола. В событии OnMouseEnter нужно проверить, осталась ли нажатой кнопка левая кнопка мыщи, если не нажата - сбросить флаг.


Наверх

Титульная страница Поиск, карта сайта Написать письмо