AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Systemmenü - Fenster schließen abfangen...

Ein Thema von Mazel · begonnen am 22. Jan 2006 · letzter Beitrag vom 22. Jan 2006
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

Systemmenü - Fenster schließen abfangen...

  Alt 22. Jan 2006, 14:57
Hallo,

ich möchte, dass das schließen aus dem Systemmenü abgefangen wird: "Fenster schließen Alt+F4". Ich habe es mit folgendem Code probiert, doch er fängt nur die Tastenkombination Alt+F4 ab und nicht den Klick auf den Item in dem Menü.

Delphi-Quellcode:
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  If Message.CmdType and $FFF0 = SC_CLOSE then Hide;
  inherited;
end;
Dies funktioniert beim drücken von Alt-F4 und beim Klicken auf die Windows Schließen Schaltfläche rechts oben, jedoch nicht aus dem Menü heraus. Was kann ich machen, damit auch dies funktioniert?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#2

Re: Systemmenü - Fenster schließen abfangen...

  Alt 22. Jan 2006, 15:23
Zitat:
Dies funktioniert beim drücken von Alt-F4
Möchtest du generell alle schließen-messages abfangen?

Schau dir doch mal das Ereignis OnFormClose deines Formulars an! Speziell den var-Parameter Action!
In der Hilfe steht was er bewirkt!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Systemmenü - Fenster schließen abfangen...

  Alt 22. Jan 2006, 15:24
Moin Marcel,

Du könntest, statt die Messages abzufangen, einfach im OnCloseQuery dass Schliessen des Fensters verbieten, bis, z.B., eine Bestimmte Bedinungung zutrifft, damit Du es überhaupt mal schliessen kannst. Oder Du müsstest das Programm dann per Application.Terminate beenden, da hier, u.a., OnCloseQuery übergangen wird.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#4

Re: Systemmenü - Fenster schließen abfangen...

  Alt 22. Jan 2006, 15:39
Danke,

mit OnClose oder OnCloseQuery funktioniert es. Warum bin ich nicht darauf gekommen? Warum habe ich das mit WMSysCommand probiert, wo es doch so einfach ist mit OnClose?

Jedenfalls klappt es!

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#5

Re: Systemmenü - Fenster schließen abfangen...

  Alt 22. Jan 2006, 18:31
Wer es über das Abfangen von Messages machen möchte, kann dafür auch die Message WM_CLOSE verwenden:

Delphi-Quellcode:
  private
    procedure WMClose(var Msg: TWMClose); message WM_CLOSE;
cya Felix
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz