Отслеживание усиления фокуса и потери формы в приложении VCL
Я поддерживаю приложение для рабочего стола Windows, которое постоянно удаляет фокус с видимых окон (а также из других приложений на рабочем столе). Это явно ошибка, и я хочу ее исправить, но приложение старое (Borland C++Builder 6) и его код очень обширный. Я пытаюсь отследить FormActivate
а также FormDeactivate
события, но каждое из них происходит только один раз: FormActivate
после показа и FormDeactivate
при закрытии окна.
Можно ли программно отслеживать изменения фокуса в формах VCL?
1 ответ
TForm::OnActivate
Событие инициируется, когда форма первоначально показывается, и когда фокус перемещается на другую форму в том же процессе приложения, а затем обратно.
TForm::OnDeactivate
событие вызывается, когда форма скрыта, и когда фокус перемещается на другую форму в том же процессе приложения.
Когда фокус переходит к другому процессу, а затем обратно к вашему процессу, TForm::OnActivate
а также TForm::OnDeactivate
события НЕ инициируются. TApplication::OnActivate
а также TApplication::OnDeactivate
события запускаются вместо.