Есть ли способ определить, была ли нажата форма?
Delphi XE
Есть ли способ определить, получила ли форма щелчок мышью? Событие OnClick в форме вызывается только в пустых частях формы. Любые части, которые имеют элементы управления, не будут отвечать.
1 ответ
Решение
Вам нужно будет отфильтровать сообщения в очереди для обнаружения событий мыши на глобальном уровне.
- Добавить обработчик для
TApplication.OnMessage
, - Слушать
WM_MOUSEDOWN
или жеWM_MOUSEUP
как вам угодно, и ответьте, если дескриптор целевого окна - это дескриптор формы или дочерний элемент управления. - Убедитесь, что вы оставили параметр Handled сообщения как False, чтобы сообщение доставлялось его цели.
Если вы действительно пытаетесь обнаружить активацию формы, используйте OnActivate
,