Как распознать, что форма находится в фокусе через событие? - PullRequest
0 голосов
/ 07 мая 2019

В приложении у нас есть несколько форм. Теперь мы хотим обновить форму «X», когда пользователь видит форму «x», либо восстановив ее с панели задач, либо с помощью «alt + tab». Как распознать это через событие. События «OnActivate», «OnShow» вызываются только один раз при создании формы. Так что они здесь бесполезны.

1 Ответ

1 голос
/ 07 мая 2019

Ваше утверждение о том, что события TForm.OnActivate и TForm.OnShow срабатывают только один раз для TForm экземпляра, неверно.

Событие TForm.OnActivate наступает, когда окно TForm получает фокус ввода в первый раз, а затем, когда фокус ввода переносится в это окно из другого окна TForm, в то время как приложение находится на переднем плане.

Обратите внимание, что есть также события TApplication.OnActivate и TApplicationEvents.OnActivate, которые запускаются, когда ваше приложение выходит на передний план впервые, и впоследствии, когда фокус перемещается на другое приложение, а затем обратно в приложение.

Событие TForm.OnShow наступает, когда окно TForm становится видимым в первый раз, а затем всякий раз, когда это окно становится скрытым, а затем вызывается повторно.

...