Entwickler-Ecke
Sonstiges (Delphi) - Abfrage, ob Windows gerade herunterfährt
contondant - Di 04.09.07 06:08
Titel: Abfrage, ob Windows gerade herunterfährt
Hallo zusammen,
ich hab eine (wahrscheinlich) äusserst einfache Frage, auf die Google leider nix findet...
Beim klicken auf das Beenden-Kreuz des Formulars kommt eine Abfrage, ob das Tray-Icon auch beendet werden soll.
Funktioniert soweit, nur: Diese Abfrage kommt auch beim Herunterfahren von Windows (ähnlich wie Word, wenn ein Text nicht gespeichert wurde).
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); var a : boolean; begin a := MessageDlg('Tray auch beenden?' , mtConfirmation, [mbYes,mbNo], 0) = mrYes; if a then CanClose:= true else begin CanClose:= false; Form1.Visible := false; Form1.TrayIcon.HideTaskbarIcon; end; end; |
Das Tray-Icon ist ein TCoolTrayIcon
Danke schonmal!
Florian
Moderiert von
Gausi: Delphi-Tags hinzugefügt
Delete - Di 04.09.07 08:08
Mit folgendem Code sollte sich das Problem lösen lassen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| private FAllowClose: Boolean; procedure WMEndSession(var Message: TMessage); message WM_ENDSESSION; procedure WMQueryEndSession(var Message: TMessage); message WM_QUERYENDSESSION;
procedure Tform1.WMEndSession(var Message: TMessage); begin FAllowClose := True; Close; inherited; end;
procedure Tform1.WMQueryEndSession(var Message: TMessage); begin FTaskIcon.Active := False; FAllowClose := True; Close; inherited; end; |
Icon-Namen anpassen.
contondant - Di 04.09.07 11:42
Hallo,
leider lies sich das Problem damit nicht lösen. Dazu muss ich sagen, ich bin Delphi-Anfänger und hab deinen Code nur entsprechend angepasst eingebaut.
Einen Aufruf der Prozeduren hab ich jetzt mal nicht hinzugefügt, die werden vom Programm selbstständig aufgerufen wenn Windows den Beenden-Befehl sendet, oder?
Active := False;
wurde ersetzt durch
Enabled := False,
das Active gibt's beim CoolTrayIcon nicht.
Danke trozdem
Delete - Di 04.09.07 13:03
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose:= FAllowClose; end; |
Man könnte auch die ganze Prozedur ersatzlos entfernen...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!