Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Как предусмотереть закрытие проекта


Автор: Marinka2300 8.5.2010, 21:31
. Создать проект с тремя формами.Предусмотреть переход от одной формы к другой Form 1-> Form 2-> Form 3 c помощью соответствующих кнопок и делая предыдущую форму невидимой.Предусмотреть закрытие проекта при закрытии формы Form 3.
Вот последний пункт вызвал затрудение, как Предусмотреть закрытие проекта при закрытии формы Form 3.? smile 

Автор: Данкинг 8.5.2010, 21:46
Цитата(Marinka2300 @  8.5.2010,  22:31 Найти цитируемый пост)
Вот последний пункт вызвал затрудение, как Предусмотреть закрытие проекта при закрытии формы Form 3.?

Ну, не знаю, видимо, как-то так:
Код

procedure TForm3.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 Application.Terminate;
end;

smile

Автор: dmnk158 8.5.2010, 21:47
Код

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
application.Terminate;
end;

Автор: Artemon 8.5.2010, 21:55
Далеко не лучший вариант закрывать приложение через terminate.

Для корректного закрытия - нужно закрыть главную форму приложения.

Автор: Данкинг 8.5.2010, 22:01
Цитата(Artemon @  8.5.2010,  22:55 Найти цитируемый пост)
Далеко не лучший вариант закрывать приложение через terminate.

А в чём могут быть глюки? Всегда так закрываю, и ничего отрицательного не замечал.

Автор: Marinka2300 8.5.2010, 22:05
procedure TForm3.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 Application.Terminate;
end;

не работает 
выбивает ошибку undeclared identifier FormCloseQuery

Автор: Artemon 8.5.2010, 22:08
Цитата

А в чём могут быть глюки? Всегда так закрываю, и ничего отрицательного не замечал.


Например работают у тебя потоки или данные пишутся в БД/На CD и т.д.
И тут ты бесцеремонно прирываешь программу, последствия будут неизвестны.

Если закрывать через FormMain.Close(), то как положено вызовется событие закрытия, в котом можно провести подготовку к закрытию.

Автор: Marinka2300 9.5.2010, 10:09
Спасибо огромное всем! smile  smile 

Автор: Данкинг 9.5.2010, 10:35
Цитата(Marinka2300 @  8.5.2010,  23:05 Найти цитируемый пост)
не работает 
выбивает ошибку undeclared identifier FormCloseQuery 

Не может быть. Если только ты вручную это пропишешь - тогда конечно. smile 

Цитата(Artemon @  8.5.2010,  23:08 Найти цитируемый пост)
Например работают у тебя потоки или данные пишутся в БД/На CD и т.д.
И тут ты бесцеремонно прирываешь программу, последствия будут неизвестны.

Если закрывать через FormMain.Close(), то как положено вызовется событие закрытия, в котом можно провести подготовку к закрытию. 

Это понятно, что в подобных случаях следует предусмотреть сохранение данных. Я имел в виду, в чём отличие именно Form.Close от Application.Terminate в общем случае.

Добавлено через 29 секунд
Цитата(Marinka2300 @  9.5.2010,  11:09 Найти цитируемый пост)
Спасибо огромное всем!

Уже получилось? Тогда молодец. smile 

Автор: Artemon 11.5.2010, 21:31
Почитал хэлп по этому поводу, как ни странно там наоборот рекомендуют закрывать через Terminate, также говорят что приложение сразу - не закрывается.
 smile 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)