Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно завершить работу приложения. [D5, Win2k]


Guitar ©   (2004-12-23 11:35:00) 

Если приложение состоит из нескольких форм. И в конце работы используется одна из дочерних форм. Родительская спрятана
form1.Hide;

То как правильно завершить работу всего приложения?


Jay1982   (2004-12-23 12:48:00) [1]

Напиши Halt


Guitar   (2004-12-23 12:37:00) [2]

4 Александр Иванов
Вы правильно написали. Если не сложно скажите какое событие наступает раньше close или destroy. И в чём суть каждого? Чем они отличаются? В чём конкретно моя ошибка, что я не понял?

4 Плохиш
я писал
procedure TForm2.FormDestroy(Sender: TObject);
begin
form1.close;
end;


Guitar   (2004-12-23 12:37:00) [3]

4 Александр Иванов
Вы правильно написали. Если не сложно скажите какое событие наступает раньше close или destroy. И в чём суть каждого? Чем они отличаются? В чём конкретно моя ошибка, что я не понял?

4 Плохиш
я писал
procedure TForm2.FormDestroy(Sender: TObject);
begin
form1.close;
end;


Александр Иванов   (2004-12-23 12:10:00) [4]

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
end;


Плохиш   (2004-12-23 12:06:00) [5]


>Может я не на то событие Form2 код пишу? На какое событие правильно писать?

Интересно, а на какое событие Form2 ты код пишешь?
OnClose, OnCloseQuery.


Guitar   (2004-12-23 12:05:00) [6]

Прошу прощения, я в коде, что выше, ошибку допустил. Правильнее

procedure TForm2.FormDestroy(Sender: TObject);
begin
form1.close;
end;


Вопрос остался.


Guitar   (2004-12-23 12:02:00) [7]

Я тоже так думал.
Я делаю эти команды на событие

procedure TForm1.FormDestroy(Sender: TObject);
begin
form1.close;
end;


И без разницы что писать
application.Terminate;
form1.destroy;
form1.close;


В итоге приложение не выходит. А просто Form2 исчезает и Delphi виснет. Дело в следующем. Так как я сделал Form1.hide то её просто не видно. И поэтому виснет. Когда я убрал из кода Form1.hide , то при закрытии Form2 появляется Form1 и её я вручную закрываю. Только в этом случае всё приложение выходит корректно.

А мне то нужно, чтобы первой формы видно не было. Поэтому делаю Form1.hide.

И вот не знаю как правильно завершить всё приложение. (((
Может я не на то событие Form2 код пишу? На какое событие правильно писать?


Jay1982   (2004-12-23 11:41:00) [8]

Application.Terminate


Александр Иванов   (2004-12-23 11:37:00) [9]

Закрыть главнуцю форму.

Form1.Close;


Наверх

Титульная страница Поиск, карта сайта Написать письмо