Отслеживание усиления фокуса и потери формы в приложении VCL

Я поддерживаю приложение для рабочего стола Windows, которое постоянно удаляет фокус с видимых окон (а также из других приложений на рабочем столе). Это явно ошибка, и я хочу ее исправить, но приложение старое (Borland C++Builder 6) и его код очень обширный. Я пытаюсь отследить FormActivate а также FormDeactivate события, но каждое из них происходит только один раз: FormActivate после показа и FormDeactivate при закрытии окна.

Можно ли программно отслеживать изменения фокуса в формах VCL?

1 ответ

TForm::OnActivate Событие инициируется, когда форма первоначально показывается, и когда фокус перемещается на другую форму в том же процессе приложения, а затем обратно.

TForm::OnDeactivate событие вызывается, когда форма скрыта, и когда фокус перемещается на другую форму в том же процессе приложения.

Когда фокус переходит к другому процессу, а затем обратно к вашему процессу, TForm::OnActivate а также TForm::OnDeactivate события НЕ инициируются. TApplication::OnActivate а также TApplication::OnDeactivate события запускаются вместо.

Другие вопросы по тегам