diff --git a/src/editor/Editor.lpr b/src/editor/Editor.lpr
index ccbcb60f5a95cd469fd060445b2d7c62a2f202f0..e5d615625dc332d9094a59823bba66049db33924 100644 (file)
--- a/src/editor/Editor.lpr
+++ b/src/editor/Editor.lpr
{$INCLUDE ../shared/a_modes.inc}
uses
- Forms, Interfaces,
- GL, GLExt,
+ Forms, Interfaces, Dialogs,
+ GL, GLExt, SysUtils,
e_graphics in '../engine/e_graphics.pas',
e_log in '../engine/e_log.pas',
e_textures in '../engine/e_textures.pas',
{$R *.res}
{$ENDIF}
+ type
+ THandlerObject = class (TObject)
+ procedure ExceptionHandler (Sender: TObject; e: Exception);
+ end;
+
+ var
+ H: THandlerObject;
+
+ procedure THandlerObject.ExceptionHandler (Sender: TObject; e: Exception);
+ begin
+ e_WriteStackTrace(e.message);
+ MessageDlg('Unhandled exception: ' + e.message + ' (see Editor.log for more information)', mtError, [mbOK], 0);
+ end;
+
begin
Application.ExceptionDialog := aedOkMessageBox;
+ Application.AddOnExceptionHandler(H.ExceptionHandler, True);
Application.Initialize();
Application.CreateForm(TMainForm, MainForm);