Wenn ich ein Nicht-Modales-Formular anzeige das entfernt werden soll falls eine
Exception auftritt, dann wird die
Exception bei Delphi 10.1 (Berlin) nicht angezeigt (bzw. die
Exception wird vermutlich angezeigt und sofort geschlossen). Bei (meinem) Delphi 2007 hat das noch einwandfrei funktioniert.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
try
Form2.Show;
raise Exception.Create('
Ein Fehler');
finally
Form2.Release;
end;
end;
Das liegt mit Sicherheit daran, dass die Dialogbox der
Exception als Parent das Fenster "Form2" benutzt. Weil das Fenster aber im Rahmen der Fehlerbehandlung geschlossen wird, verschwindet auch die Fehlermeldung und kann vom Benutzer nicht gesehen werden. So etwas ähnliches gab es bei Delphi 2007 auch schon*. Damals wurden Fehlermeldungen nicht mehr angezeigt, wenn sie innerhalb des FormCreate auftraten. Für diesen Fehler hatte ich damals einen Bugfix eingebaut. Möglicherweise hat dieser Bugfix auch dazu geführt, das der obige Code bei mir einwandfrei funktionierte. Daran erinnere ich mich nicht mehr
Meine Frage: Ist das als Bug von Delphi zu werten (=>
QC), oder sollte ich das durch Änderung des Designs meiner Anwendung lösen?
*
QC #75756/#78400/#78883: No exceptionmessage shown if form is released