Вниз
Скачать: CL | DM;

Исключения в FormActivate, Create и т. д.   Найти похожие ветки 

 
Aleksej   (2004-06-15 13:51) [0]

Как прервать выполнение программы при выполнении некоторого условия при создании\активации формы?
Делаю так:
procedure TForm1.FormCreate(Sender: TObject);
var
  MyIni:TIniFile;
  i:integer;
begin
  MyIni:=TIniFile.Create("test.ini");
  i:=MyIni.ReadInteger("S1","Param1",100);
  MyIni.Free;
  if i=100 then raise Exception.Create("Ошибка при создании !");
end;
Пытаюсь перехватить исключение следующим образом:
begin
 try
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
 except on Exception do
    MessageDlg("Ошибка",mtInformation,mbYesNoCancel,0);
 end;
end.
НО, нужного мне результата не вижу: появляется форма, и программа прекрасно работает.
Что я неправильно делаю?


 
Sandman25 ©   (2004-06-15 13:53) [1]

if i=100 then
begin
 ShowMessage("Ошибка при создании !");
 Release;
end;


 
Aleksej   (2004-06-15 13:58) [2]

Попробовал. Не работает.
После Release идет на Application.Run;
и висит.... :-(


 
Sandman25 ©   (2004-06-15 14:02) [3]

Виноват, не проверил.
В крайнем случае можно вызвать Free c exit. Только что попробовал - вроде работает.


 
Гаврила ©   (2004-06-15 14:07) [4]

Лучше выполнять эти действия в конструкторе формы, а не на OnCreate
Тогда в случае возникновения исключения форма не будет создана (автоматически будет вызван деструктор)


 
GuAV ©   (2004-06-15 17:15) [5]


> В крайнем случае можно вызвать Free c exit

Да хоть с аборотм, все finally пройдутся.
Только Halt(255) :->


 
Sandman25 ©   (2004-06-15 17:27) [6]

[5] GuAV ©   (15.06.04 17:15)

Я имел ввиду, чтобы не получилось нечто типа

if ... then
 Free;
Label1.Caption := .. // Access Violation



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
14-1086773601
*Pavel
2004-06-09 13:33
2004.06.27
Шмон нелицензионного ПО


14-1086164825
ИМХО
2004-06-02 12:27
2004.06.27
Пару слов и Стивене Кинге


3-1086253917
galexis
2004-06-03 13:11
2004.06.27
Медленно работает поиск по полю VARCHAR


3-1085748770
Inkotex
2004-05-28 16:52
2004.06.27
А есть ли в прероде компонент чтото типа DBTreeGrid?


8-1081352734
Pa5ha
2004-04-07 19:45
2004.06.27
iD3DXFont




   Наверх