Also, ich kann bestätigen, dass es bei Delphi 2007 einen Bug mit der Funktion "TApplication.GetActiveFormHandle" gibt. Der Fehler kann wie folgt reproduziert werden.
(Vergleiche:
QC #75756/#78400/#78883: No exceptionmessage shown if form is released)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(Self);
Form2.Show;
Form2.Release;
raise Exception.Create('
Keine Fehlermeldung - oder doch?');
end;
Die Ursache des Problems ist, dass die CM_RELEASE-Message in der Message-Warteschlange steckt und dann erst beim Anzeigen der Messagebox abgearbeitet wird. Da die Messagebox als Parent genau das zu schließende Fenster hat, wird sie ebenfalls geschlossen - also nie angezeigt.
Ich verstehe allerdings nicht, wie man das hier besprochene Verhalten reproduzieren kann.
Nun meine Frage: Hat jemand ein Beispielprogramm, welches den Fehler (MessageDlg wird nicht angezeigt - MessageBox wird aber angezeigt) von Sanguis mit Delphi 2007 reproduziert?