アプリケーションの実行中にエラーが発生したとき、エラーを示すダイアログが表示されて、処理が中断してしまいます。
エラーダイアログの表示を抑制する方法を紹介します。
(1) System.NoErrMsg
System.NoErrMsgは、実行時エラーの際にアプリケーションがエラーメッセージを表示するかどうかを示すグローバル変数です。
初期値はFalseになっていますが、Trueにするとメッセージは省略されます。
(2) TApplication.OnException
TApplication.OnExceptionは、未処理の例外が起こった際に呼び出される関数です。
初期値ではTApplication.ShowExceptionメソッドを呼び出して、補属されなかった例外をメッセージボックスに表示します。
TApplication.OnExceptionに別の処理を行う関数を代入することで、メッセージボックスを表示しないようにできます。
次のコードはボタンを押すと「ゼロによる除算」例外が発生します。
例外が発生すると、Application.OnExceptionに代入したExceptionEvent関数が呼び出され、例外のメッセージがメモコンポーネントに表示されます。
procedure TForm1.Button1Click(Sender: TObject);
var
I, J: Integer;
begin
I := 0;
J := 1 div I;
end;
procedure TForm1.ExceptionEvent(Sender: TObject; E: Exception);
begin
Memo1.Lines.Add(E.Message)
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException := ExceptionEvent;
end;