Delphi XEЛюбой способ определить, была ли нажата форма?
Есть ли способ определить, получил ли форма клик мыши? Событие OnClick в форме запускается только в пустых частях формы. Любые части, у которых есть элементы управления, не будут отвечать.
Delphi XEЛюбой способ определить, была ли нажата форма?
Есть ли способ определить, получил ли форма клик мыши? Событие OnClick в форме запускается только в пустых частях формы. Любые части, у которых есть элементы управления, не будут отвечать.
Вам нужно будет фильтровать сообщения в очереди для обнаружения событий мыши на глобальном уровне.
TApplication.OnMessage
.WM_MOUSEDOWN
или WM_MOUSEUP
, как вам угодно, и ответьте, если дескриптор целевого окна соответствует форме или дочернему элементу управления.Если вы действительно пытаетесь обнаружить активацию формы, используйте OnActivate
.
Я попробовал OnActivate, но по какой-либо причине он срабатывает только один раз. Я должен добавить, что форма находится в DLL, что может осложнять вопросы. Благодарю за предложение, однако, я отдам его. – rhody
OnActivate - это ответ. Мы должны просто исправить ваш код, чтобы он работал. –
Для тех, кому может быть интересно, мне удалось заставить OnActivate работать с моим кодом для использования пакетов. Извините мое невежество, если это неуместно упоминать здесь. – rhody
Извините, но я этого не сделал. Можете ли вы прочитать заголовок и первый абзац, который не изменился, ни одной буквы. Я сделал ошибку в добавлении фона, который оказался несущественным для конкретного вопроса. Пожалуйста, верните мои изменения, чтобы задать вопрос, чтобы другие не были непреднамеренно запутаны, как вы были, когда вы дали ответ (на другой вопрос). Вы ответили на вопрос о OnActivate, я задал вопрос о OnClick. – rhody
Пожалуйста, прочитайте мой вопрос еще раз. Я смутил вас на фоне, это была моя ошибка. Просто сосредоточьтесь на названии и первом абзаце. Вот в чем вопрос. Возможно, вы пропустили его, но в первом предложении есть знак вопроса. – rhody
Нет проблем. Удачи. –