Hallo,
zu 1)
das ist einfach, Du must nur Deinen eigenen
Exception-Handler basteln, am Besten im Hauptformular (er gilt applikationsweit):
Delphi-Quellcode:
type
TForm1 =
class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure MyExceptionHandler(Sender: TObject; E:
Exception);
public
{ Public declarations }
end;
....
procedure // Zuweisung auf Deinen eigenen Handler
TForm1.FormCreate(Sender: TObject);
begin
Application.OnException := MyExceptionHandler;
end;
....
procedure TForm1.MyExceptionHandler(Sender: TObject; E:
Exception);
var
ErrFileName, ErrMsg:
String;
LOG_FILE: TextFile;
begin
ErrFileName := ChangeFileExt(Application.ExeName, '
.LOG');
ErrMsg := Format('
%s : %s - %s'#13#10, [DateTimeToStr(Now), E.ClassName, E.
Message]);
Memo1.Lines.Add(ErrMsg);
// ups Memo, hätte ich fast vergessen!
AssignFile(LOG_FILE, ErrFileName);
Append(LOG_FILE);
Writeln(LOG_FILE, ErrMsg);
Flush(LOG_FILE);
// Sicherstellen, daß der Text tatsächlich in die Datei geschrieben wird.
CloseFile(LOG_FILE);
end;
Application.ShowException(E);
end;
zu 2)
tut mir leid, aber ich verstehe nicht was Du genau willst.