Показать сообщение отдельно
  #3  
Старый 14.02.2014, 03:35
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от govorun
...Какой из способов закрытия программы наиболее цивилизованный: form1.Close; или Application.Terminate;?
Приоритеты при уничтожении формы: CloseQuery -> Close-> Deactivate -> Hide -> Destroy т.е. если просто закрыть форму посредством form1.Close(Alt+F4) сначало сгенерится событие CloseQuery и в этот момент можно например выполнить сохранение клиентских данных, либо сделать что-то ещё. У Close есть параметр Action со следующими четырьмя возможными значениями (по drkb):
caNone Закрывать форму нельзя. Всё равно, что установить CanClose:= false в OnCloseQuery.
caHide Вместо закрытия, форма будет скрыта.
caFree Форма будет закрыта, и занятые ей ресурсы будут освобождены.
caMinimize Вместо закрытия, форма будет минимизирована. Это значение устанавливается поумолчанию у дочерних форм MDI.
При вызове Application.Terminate некоторых событий не наступает, поэтому лучше использовать form1.Close, причём глобальная Application отслеживает что закрывается: если не главная форма, то выполняется form.hide, а если главная, то завершается всё приложение
Ответить с цитированием