Если приложение выполняет какую-либо операцию, занимающую много времени
(более нескольких секунд), например, очень большой цикл с медленными операциями,
то, во-первых, необходимо периодически (хотя бы раз в секунду), вызывать
Application.ProcessMessages, позволяющую Windows заниматься своими обычными
делами и, во-вторых, периодически проверять значение поля Application.Terminated,
чтобы узнать, не завершил ли пользователь ваше приложение, не дождавшись
результатов его работы. Поле Terminated приобретает значение True в тех случаях,
когда пользователь закрывает главное окно программы или из программы вызывается
Application.Terminate. Кроме того, следует учитывать, что установившиеся
де-факто стандарты на интерфейс требуют отображения текущих результатов работы
(легче всего это сделать с помощью компонента TProgressBar), либо, если это по
каким-либо причинам невозможно (например, при выполнении SQL-запроса), просто
отображения движущегося изображения, в символической форме демонстрирующего суть
происходящего процесса (компонент TAnimate).
|