Главная страница
    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.039 c
6-1163695742
p314
2006-11-16 19:49
2007.05.20
ssl


1-1174914421
Inna_Z
2007-03-26 17:07
2007.05.20
Почему может не работать Office 2003 Через OLE


2-1177686183
..::KraN::..
2007-04-27 19:03
2007.05.20
Неправильное отображение страницы в TWebBrowser


2-1178364358
Oleg_teacher
2007-05-05 15:25
2007.05.20
Treeview


3-1172993659
AlexLines
2007-03-04 10:34
2007.05.20
По поводу инсталяции InterBase





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский