Zitat von
Alfi001:
Du kannst natürlich einen nicht unerheblichen Aufwand treiben und vor jeder Aktion Informationen über den aktuellen Kontext irgendwo speichern um diese dann im globalen Exceptionhandler zu lesen aber der Aufwand ist es nicht Wert! Du hast keine Vorteile von einem globalen Handler (höchstens um Exceptions abzufangen die irgendwie durch alle anderen Exceptionbehandlungen "durchgeschlüpft" sind)
Hi Alfi,
eigentlich wollte ich an der Stelle, wo der Fehler passiert lediglich das Edit-Feld des auslösenden Fehlers an eine globale Variable übergeben und dieser dann in der globalen
Exception den Focus übergeben.
Also z.B. so:
Delphi-Quellcode:
MyErrorObject := EdTurnierDatum;
//MyErrorObject ist vom Typ TObject
// Hier passiert jetzt eine Exception, da das Datum ungültig ist
datum := strtodate(EdTurnierDatum.text,fsDate);
In der globalen
Exception-Behandlungs-Routine wollte ich dann den Focus auf das MyErrorObject legen.
Delphi-Quellcode:
procedure TFrmMain.MyExceptionHandler(Sender : TObject; E :
Exception );
var err : TObject;
begin
MessageDlg('
ERROR: ' + E.
Message, mtError, [mbOK],0);
MyErrorObject.setfocus;
end;
Leider funktioniert genau das nicht. Vermutlich erlaubt Setfocus kein TObject. Aber was dann?
Den Aufwand gegenüber 30-40 Try...exception...finally...Blöcken finde ich bei dieser Methode deutlich geringer.