Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Вниз

Снова про прервание Application :)   Найти похожие ветки 

 
kronprince   (2002-06-04 17:31) [0]

Не могу понять откуда Exception ???

Application.Initialize;
// ну тут все понятно
formAbout:=TformAbout.Create(nil);
formAbout.Show();
formAbout.Update();
Application.CreateForm(TData, Data);
// boolCreateError - глобальная, устанавливается при создании Data
if not boolCreateError
then begin
Application.CreateForm(TFormMain, FormMain);
// .... и еще куча всего

formAbout.Free();
Application.Run;
end{if boolCreateError}
else begin
formAbout.Free();
Data.Free();
end;{if else}


и как коректно убить результаты работы Application.Initialize; ???
вообще как корректно освободить всю память если не хочешь запускать Application.Run; ???


 
Игорь Шевченко   (2002-06-04 17:37) [1]

Убить:

Application.ShowMainForm := false;
Application.Terminate();

Совсем грубо - Halt


 
Shaman_Naydak   (2002-06-04 17:43) [2]

1. Application.Initialize не делает ничего такого, что нужно было бы убивать! Единственное, что он делает, так это вызывает цепочку InitProc.. модули сами в finalization сделают то, что нужно.
2. Откуда Exception - ясный пень при создании либо формы Data, либо формы FormMain.. Кстати, вы в курсе, что главной формой у вас будет считаться именно форма Data..
Учить язык надо, батенька.
Работать с ошибками надо путем установки обработчиков исключений, а не анализом каких-то булевских переменных..
Приблизительно так:
Application.Initialize;
formAbout:=TformAbout.Create(nil);
try
formAbout.Show;
formAbout.Update;
try
Application.CreateForm(TData, Data);
Application.CreateForm(TFormMain, FormMain);
formAbout.Release;
formAbout:=nil;
Application.Run;
except
on E: Exception do ShowMessage(E.Message);
end;
finally
formAbout.Free;
end;

Пишу не проверяя, так что звиняйте, если что


formAbout.Free();

Data.Free();
end;{if else}


 
Shaman_Naydak   (2002-06-04 17:44) [3]

Блин.. последние строчки - после
> Пишу не проверяя, так что звиняйте, если что
НЕ НУЖНЫ - наследие Cut & Paste, блин



 
Shaman_Naydak   (2002-06-04 17:47) [4]

> Игорь Шевченко ©
Извините, вы не правы
Terminate не отработает, так как он не хочет запускать Application.Run, а значит из очереди сообщений Quit никто не достанет :(

A Halt действительно очень грубо!!!


 
Игорь Шевченко   (2002-06-04 17:50) [5]

Shaman_Naydak © (04.06.02 17:47)

Если автору надо в dpr что-то делать по условиям, то не прав.
Но этот способ сам по себе корявый - в dpr по условию либо выполнять run, либо нет.



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

Форум: "Основная";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
14-55318
SPeller
2002-05-12 14:08
2002.06.17
У кого есть дача ?


3-55041
SergeySA
2002-05-23 19:19
2002.06.17
Как заменить в DbGrid значение на лету при выводе его туда


6-55252
dymka
2002-04-10 10:10
2002.06.17
Многопоточная загрузка файлов по TCP/IP


6-55254
daos
2002-04-02 05:15
2002.06.17
Уважаемые мастера помогите с TWebBrowser.


1-55209
Федина Лидия
2002-06-04 17:52
2002.06.17
формирование справки - Help





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