Meine Frage bezieht sich auf Windows.
Ich möchte einen FileDialog (TOpenDialog/TSaveDialog), der gerade per .Execute() in einer Modalschleife angezeigt wird,
durch ein Ereignis schließen, in meinem Fall wenn Windows in den Standby/Suspend-Modus wechselt.
Die Behandlung des WM_POWERBROADCAST habe ich im Haupt-Form erfolgreich umgesetzt (PBT_APMSUSPEND, PBT_APMSTANDBY).
Ich nutze es ursprünglich, um einen im Programm angemeldeten Benutzer auszuloggen. Funktioniert bestens.
Doch einen evtl. zu dem Zeitpunkt aktiven OpenDialog kriege ich nicht geschlossen. Ich habe folgendes ausprobiert ...
Code: Alles auswählen
Dialog.UserChoice:=mrCancel;
Dialog.Close; // oder .DoClose
Windows.CloseHandle(Dialog.Handle);
Möglicherweise ist es ein Problem unter Windows, da im Source von TFileDialog kommentiert ist, dass Windows seine eigene Modalschleife verwendet.
Deshalb hatte ich es mit CloseHandle() versucht, aber ohne Erfolg.
Jemand eine Idee?
Danke und Grüße,
Jörg