AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Registrieren, wenn das Programm beendet werden muss.
Thema durchsuchen
Ansicht
Themen-Optionen

Registrieren, wenn das Programm beendet werden muss.

Ein Thema von Cubysoft · begonnen am 9. Jan 2016 · letzter Beitrag vom 9. Jan 2016
 
mm1256

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

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 PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
 


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 14:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz