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