Главная страница
    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.48 MB
Время: 0.059 c
1-1174061963
Людмила
2007-03-16 19:19
2007.05.20
Межпрограммное взаимодействие. Собираю идеи.


15-1177175038
oxffff
2007-04-21 21:03
2007.05.20
Баги компилятора. Опять. Опять. Опять :(


1-1174481739
kilya
2007-03-21 15:55
2007.05.20
MDI формы


2-1178367762
MRAk
2007-05-05 16:22
2007.05.20
Сервисы


15-1176835024
ANTPro
2007-04-17 22:37
2007.05.20
Военкомат





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