Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Application.Terminate   Найти похожие ветки 

 
Dmitry_177   (2007-04-25 08:41) [0]

При выполнении Application.Terminate выполняется ли Form.Destroy?


 
Сергей М. ©   (2007-04-25 08:52) [1]

Нет.


 
homm ©   (2007-04-25 08:54) [2]

> При выполнении Application.Terminate выполняется ли Form.Destroy?

что, проверить то самому слабо за минуту? Проще ждать когда здесь ответят.


 
Dmitry_177   (2007-04-25 09:05) [3]

У меня в Form.Create считываются всякие настройки, для них выделяется память и т.д. и если при считывании произошла какая-то ошибка, как мне в Form.Create правильно завершить программу? Я делаю так:
Application.Terminate;
Exit;

приложение завершается, но у меня окно быстро появляется и исчезает сразуже.. может как то по другому надо?


 
Сергей М. ©   (2007-04-25 09:11) [4]

Application.Initialize;
Application.ShowMainForm := False;
Application.CreateForm(TForm1, Form1);
Application.Run;
..

procedure TForm1.Create;
begin
...
if Условие then
 Visible := True
else
 Close;
end;


 
Dmitry_177   (2007-04-26 15:38) [5]

Сергей М.

если так сделать, то окно при ошибке не показывается, но программа всеравно остается запущенной..


 
Сергей М. ©   (2007-04-26 15:40) [6]


> Dmitry_177   (26.04.07 15:38) [5]


Ну замени Close на Application.Terminate)
Вот ведь велика проблема-то !)


 
Dmitry_177   (2007-04-26 15:44) [7]

Я сделал так:

         Form1.Close;
         Application.Terminate;


т.к. судя по:

> Dmitry_177   (25.04.07 08:41) 
> При выполнении Application.Terminate выполняется ли Form.
> Destroy?
>
> Сергей М. ©   (25.04.07 08:52) [1]
> Нет.

Form.Destroy не сработает при Application.Terminate, а там у меня идет освобождение памяти и т.д..


 
Kolan ©   (2007-04-26 15:47) [8]

> У меня в Form.Create считываются всякие настройки, для них
> выделяется память и т.д. и если при считывании произошла
> какая-то ошибка,

То надо сообщать об этом и применять настройки по умолчанию, имхо.


 
McSimm_ ©   (2007-04-26 15:53) [9]

Возможно поможет PostQuitMessage


 
Dmitry_177   (2007-04-26 15:57) [10]

При Application.Terminate; всетаки вызывается Form.Destroy.. В Form.Destroy сделал в качестве теста MessageBox и он выскочил при Application.Terminate; без Form1.Close;


 
Сергей М. ©   (2007-04-26 15:59) [11]


> Dmitry_177   (26.04.07 15:44) [7]


> т.к. судя по


Когда исходники-то борландовские читать будем ?


 
Сергей М. ©   (2007-04-26 15:59) [12]


> Dmitry_177   (26.04.07 15:57) [10]
>
> При Application.Terminate; всетаки вызывается Form.Destroy


Нет, не вызывается.


 
Сергей М. ©   (2007-04-26 16:02) [13]


> Dmitry_177   (26.04.07 15:57) [10]


Вот тебе цитата из forms.pas (D7):

procedure TApplication.Terminate;
begin
 if CallTerminateProcs then PostQuitMessage(0);
end;

Где ты здесь видишь Destroy ?


 
ANB ©   (2007-04-26 16:05) [14]


> Form.Destroy не сработает при Application.Terminate, а там
> у меня идет освобождение памяти и т.д..

Если процесс завершается, то винда сама удалит адресное пространство и все почистит.


 
Игорь Шевченко ©   (2007-04-26 16:07) [15]

Если был вызов Application.CreateForm, то форма будет создана с Owner=Application, а при уничтожении Application, он, как всякий порядочный компонент, уничтожает своих детей, при этом и вызовется Form.Destroy.

Разумеется, Form.Destroy вызывается при Application.Free



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.063 c
2-1177419557
bagos
2007-04-24 16:59
2007.05.20
закраска ячеек в гриде


1-1174462919
Dmitry_177
2007-03-21 10:41
2007.05.20
аналог функции malloc из С


2-1177756124
Ega23
2007-04-28 14:28
2007.05.20
Перехват события у TMyFrame


15-1177036036
Конференция
2007-04-20 06:27
2007.05.20
Внешний вид Delphi Studio 2005


5-1153742858
Нулевой
2006-07-24 16:07
2007.05.20
Как добавить свойства компонента в Object Inspector?