Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.076 c
2-1178087507
DelphiLexx
2007-05-02 10:31
2007.05.20
Динамический двумерный массив


1-1174909546
kodov
2007-03-26 15:45
2007.05.20
Перемещение в ListBox


15-1176560673
vasIZmax
2007-04-14 18:24
2007.05.20
Читальня... или просмотрщики


15-1177080727
ArtemESC
2007-04-20 18:52
2007.05.20
PHP


2-1177947590
Doom_2
2007-04-30 19:39
2007.05.20
TClientSocket и TServerSocket





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский