Einzelnen Beitrag anzeigen

mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: Registrieren, wenn das Programm beendet werden muss.

  Alt 9. Jan 2016, 09:54
Zitat von geskill:
Hey,Was du machen kannst und wie viele es machen, per Rechtsklick auf das Tray Icon ein Beenden Menü einblenden.

Letztes Problem: Windows fährt herunter. Hier kannst du das Event von Windows abfangen (WM_QUERYENDSESSION) und kurz vorher noch deine Einstellungen speichern und gegebenenfalls das Herunterfahren verzögern.
Zitat von perlsau:
Ich würde in diesem Fall vorsorglich jedesmal nach dem Minimieren ins Tray speichern. Dann kann das Programm ruhig abgeschossen werden, es ist dann bereits alles in trockenen Tüchern.
Das sind die 3 wichtigsten Maßnahmen, und zusätzlich kann man noch folgendes tun:

Einen ganz normalen Menüpunkt zum Beenden in das Mainmenu einfügen, wodurch dann das Programm nicht minimiert wird, sondern direkt beendet werden kann. Hierzu braucht man dann eine Formvariable zur Entscheidung im OnClose.

Delphi-Quellcode:
procedure TMainform.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if FTrayIconActive then begin
    Application.Minimize;
    CanClose := false;
  end;
  if CanClose then SaveAllDataAndLogout;
end;
Der Close-Event - sowohl im Tray-Menü als auch im Mainmenu - sieht dann so aus:

Delphi-Quellcode:
procedure TFrmHwpPhone.mTrayMenuCloseClick(Sender: TObject);
begin
  FTrayIconActive := false;
  Close;
end;
So nebenbei hat die Hilfsvariable den Vorteil, dass ich damit wahlweise das Verhalten des Programmes steuern kann, bzw. der Anwender selber entscheiden kann, ob er dieses Minimieren in den SysTray überhaupt möchte. Somit geht man allen unnötigen Diskussionen mit den Usern aus dem Weg, und anwenderfreundlich ist es auch
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat