Entwickler-Ecke

Windows API - Schließen mit X-Button verhindern


Roboman - Do 03.08.06 15:12
Titel: Schließen mit X-Button verhindern
Servus Leute,
kann mir mal einer bitte verraten, wie ich abfangen kann, das mein Programm mit dem X-Button in der Titelleiste ganz recht NICHT geschlossen wird. Ich war der Annahme, das sowas im Objektinspektor irgendwie einzustellen wäre. Aber ich glaub ich hab mich da geirrt. Bitte belehrt mich eines besseren wie das geht. Ich möchte nur verhindern das das Programm darüber geschlossen wird. Es soll eine bestimmte Reihenfolge nämlich eingehalten werden.

Vielen Dank für eure Antworten im voraus.


ManniTwo - Do 03.08.06 15:22

Hiermit deaktivierst du den Befehl "Schließen" im System-Menü und somit auch
das X oben rechts


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  hSysMenu: THandle;
begin
  hSysMenu := GetSystemMenu(Handle, False);
  if hSysMenu <> 0 then
    DeleteMenu(hSysMenu, SC_CLOSE, MF_BYCOMMAND);
end;


bin mir nicht ganz sicher ob das deine Frage genau trifft, oder ob du statt es ganz zu deaktivieren einfach nur anders reagieren willst.


passiv - Do 03.08.06 15:31

um abzufragen ob man schließen will (oder noch speichern) einfach Form->Objectinspektor->Ereignisse->OnCloseQuery und dort abfragen; wenn nicht geschlossen werden soll einfach closequery auf false setzen, dann schließts nicht


Roboman - Do 03.08.06 15:33

Servus ManniTwo,
genau das war die richtige Antwort. Vielen Dank.