Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
ВнизИсключения в 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 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c