Форум: "Основная";
Текущий архив: 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