Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c