Dialogmessages abfangen

Hallo, ich habe mal wieder ein Problem. Habe im OnClose einen Messagedlg eingebaut mit YES,NO,CANCEL, will jetzt diese Funktion(onClose) händisch aufrufen, aber allerdings ohne MessageDlg. Es soll nämlich automatisch der weg für YES abgearbeitet werden. Wie kann ich eine solche Message abfangen, sodass der User nichts davon mitbekommt.

mfG Manfred T.

Hallo Manfred,

der einfachste Weg ist das Speichern der Information „Abfrage? Ja/Nein“ in einer globalen Variable.
Globale Variable zur Deklaration der TForm hinzufügen:
type
TForm1 = class(TForm)

private
{ Private-Deklarationen }
CloseImmediately: Boolean;

Beim Erstellen oder Anzeigen der Form (oder erst nach Ändern zu speichernder Werte) sollte das sofortige Schliessen erstmal verhindert werden:
procedure TForm1.FormShow(Sender: TObject);
begin
CloseImmediately:=false;

Zum Schliessen der Form ohne die Abfrage muss die globale Variable dann natürlich eingeschaltet werden :

CloseImmediately:=true;
Close;

In der OnClose-Prozedur muß dann entsprechend die Abfrage der globalen Variable erfolgen:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
If not CloseImmediately then MessageDlg(…

Gruss
U.Teichert

Hallo Uwe, Danke für deine schnelle Hilfe. Nachdem ich dass von dir gesehen habe, ist mir das schon klar. Bin auf der Leitung „gestanden“. Habe gedacht muss irgendwie Windowsmessages abfangen ect. Also Danke nochmals und Tschüß
Manfred T.