Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Programm mit TrayIcon - Wie Beenden? (https://www.delphipraxis.net/112488-programm-mit-trayicon-wie-beenden.html)

sirius 22. Apr 2008 10:45


Programm mit TrayIcon - Wie Beenden?
 
An dieser Stelle schrieb Luckie als Antwort zu RavenIV:
Zitat:

Zitat von Luckie
Zitat:

Zitat von RavenIV
Als guter Tip kommt da immer:
"Das Kreuz oben rechts soll das Programm in die TNA minimieren, nicht komplett schliessen".

Das war jetzt hoffentlich ironisch gemeint. Wenn ich auf das Keruz klicke, dann erwarte ich, dass sich das Hauptfenster schliesst und der Prozess beendet wird.

Daraufhin antwortete RavenIV:
Zitat:

Zitat von RavenIV
Meine User haben sich mehrfach beschwert, weil das so war.
Nun gehen alle meine TNA-Programm nicht mehr komplett weg, sondern werden in die TNA minimiert.

Hier stehen die zwei entgegengesetzten Meinungen zu Programmen mit TNA:
- Beim Klick auf das Kreuz (oder Alt-F4) soll sich das Programm immer beenden
gegen
- Beim Klick auf das Kreuz (oder Alt-F4) soll das Programm immer in die TNA verschwinden

Da ich bei der Benutzung von fremden Programmen auch schon auf die unterschiedliche Handhabung dieses Problems reingefallen bin, wollte ich das Thema unter Programmierern mal aufgreifen. Im Sinne der intuitiven Bedienung von Programmen sollte man es ja vereinheitlichen. Beide Varianten haben meiner Meinung nach ihre Daseinsberechtigung.
Eine kleine Evaluierung der Programme auf meinem Rechner zeigt beim Klicken auf das Kreuz:
  • Outlook beendet sich
  • FSecure geht in TNA
  • ActiveSync geht in TNA
  • ein eigenes (altes) Programm geht auch in TNA (war mein erstes Programm mit TNA und da hatte ich noch viel kopiert)
Und reingefallen bin ich bei Outlook, dass sich einfach beendet, was ich in dem Fall nicht erwartete (meine Intuition auch :spin2: ).
Man sieht an dem Beispiel auch ganz klar, was Microsoft bevorzugt!!! ActiveSync vs. Outlook :roteyes:

Jetzt ist die Frage: Was erwartet ihr von einem Programm intuitiv und wie programmiert ihr?
Also ich kann es verstehen, dass sich ein normales Programm wie Outlook beendet und der FSecure-Client sich bitte möglichst nie beendet. Allerdings hoffe ich, dass sich der IE nie in den TNA verabschiedet. Woher kommt diese Intuitive Unterscheidung der Programme? Die Kunden von RavenIV hatten anscheinend das gleiche Problem wie ich mit Outlook.

s-off 22. Apr 2008 10:55

Re: Programm mit TrayIcon - Wie Beenden?
 
Hallo,

meine Erwartung beim Klick auf das Kreuz ist, dass sich das Programm beendet.
So ist es im Windows-Sinne auch vorgesehen - jedenfalls geht jegliche von MS veröffentlichte Dokumentation in diese Richtung.

Vom Handling her bevorzuge ich allerdings, dass sich das Programm in die TNA minimiert.

Aus diesem Grund biete ich dem User an, selber zu entscheiden, was passieren soll.

Fazit:

Intuitive Erwartung: schließen
Eigene Vorliebe und Umsetzung: konfigurabel

Matze 22. Apr 2008 10:55

Re: Programm mit TrayIcon - Wie Beenden?
 
Hallo,

wenn ich das selbst programmieren sollte, dann so, dass der Benutzer wählen kann, was mit dem Programm passiert. Thunderbird habe ich über eine Erweiterung so konfiguriert, dass es in die TNA minimiert wird, beim FeedReader habe ich das so auch gerne.

Allgemein kann ich für mich sagen, dass ich die Programme in die TNA minimiert haben möchte, die ständig laufen und im Hintergrund ihre Dinge erledigen ohne EIngreifen des Benutzers (Feeds und Mails abrufen, nach Viren suchen).

Programme, die ohne Interaktionen nicht viel machen (Office, Browser, ...), sollen sich meiner Meinung nach nicht in die TNA minimieren.
So bevorzuge ich das.

Grüße, Matze

Luckie 22. Apr 2008 11:00

Re: Programm mit TrayIcon - Wie Beenden?
 
Also ich sehe es so, dass ein Klick auf das Kreuz das Fenster schließt. Warum sollten sich Programme, die sich in der TNA befinden anders verhalten? Ich mache das so, dass sich meine TNA-Programme beim Klick auf Minimieren in die TNA legen und nicht auf die Taskleiste minimiert werden. Ist zwar auch etwas gegen die Konventionen, aber nicht ganz so extrem.

Zitat:

Zitat von Matze
Programme, die ohne Interaktionen nicht viel machen (Office, Browser, ...), sollen sich meiner Meinung nach nicht in die TNA minimieren.
So bevorzuge ich das.

Es ging nicht um Programmarten, die sich in die TNA legen oder nicht, sondern, wie Programme, die sich in die TNA legen vom anzeigemodus wieder in die TNA kommen.

SaFu 22. Apr 2008 11:08

Re: Programm mit TrayIcon - Wie Beenden?
 
Also ich denke auch das sich das Fenster schließen soll.
Zudem ist das (Ding) ja auch noch ROT was meines Erachtens für vorsicht steht (vorsicht Sie schließen Ihre Anwendung) meine Meinung.

Gruß Sascha

Bernhard Geyer 22. Apr 2008 11:09

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von s-off
meine Erwartung beim Klick auf das Kreuz ist, dass sich das Programm beendet.
So ist es im Windows-Sinne auch vorgesehen - jedenfalls geht jegliche von MS veröffentlichte Dokumentation in diese Richtung.

Dann lesen die MS-Entwickler ihre eigene Dokumentation nicht (jedenfalls nicht bei Vista):

Click auf Kreuz:
Synchronisationscenter -> Minimieren in Tray


Und auch anderen ist die bedeutung des Kreuzes bei TNA-Anwendungen eine andere:

ATI-Catalyst-Center -> Minimieren
eTrust Antivirus -> Minimieren


Die meinsten TNA-Anwendungen bieten ein Context-Menü mit einem Eintrag "Beenden" umd die Anwendung wirklich zu beenden.

Luckie 22. Apr 2008 11:14

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von Bernhard Geyer
Die meinsten TNA-Anwendungen bieten ein Context-Menü mit einem Eintrag "Beenden" umd die Anwendung wirklich zu beenden.

Ja nur, dass das ziemlich umständlich ist, weil es ein paar Klicks mehr erfordert, um das Programm dazu zu veranlassen, was man eigentlich gleich bei der ersten Aktion erwartet hatte.

Bernhard Geyer 22. Apr 2008 11:20

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Bernhard Geyer
Die meinsten TNA-Anwendungen bieten ein Context-Menü mit einem Eintrag "Beenden" umd die Anwendung wirklich zu beenden.

Ja nur, dass das ziemlich umständlich ist, weil es ein paar Klicks mehr erfordert, um das Programm dazu zu veranlassen, was man eigentlich gleich bei der ersten Aktion erwartet hatte.

Vor allem wenn MS beim Synchronisationscenter vorsieht ihn zu beenden. Irgendwann mal versehentlich auf eine entsprechende Option geklickt und schon bekommt man es nicht mehr los.

Die Frag ist aber auch: Will ich das Programm (wenn es nur in der TNA ist) eigentlich so einfach (versehentlich) beenden? Ist es nicht so das ein Programm das nur in der TNA ist eigentlich immer laufen sollte (Deshalb hat man es u.U. ja so konfiguriert das es nur in der TNA sichtbar ist).

Matze 22. Apr 2008 11:29

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von Luckie
Warum sollten sich Programme, die sich in der TNA befinden anders verhalten?

Ich hab's gerne so, da ich mit dem Cursor flink in die obere rechte Ecke flitzen kann und nicht erst exakt einen Button treffen muss. Es geht folglich einfach schneller.

s-off 22. Apr 2008 11:51

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von s-off
meine Erwartung beim Klick auf das Kreuz ist, dass sich das Programm beendet.
So ist es im Windows-Sinne auch vorgesehen - jedenfalls geht jegliche von MS veröffentlichte Dokumentation in diese Richtung.

Dann lesen die MS-Entwickler ihre eigene Dokumentation nicht (jedenfalls nicht bei Vista):

Vielleicht hätte ich schreiben sollen 'jede mir bekannte Dokumentation'.
Ich habe kein Vista und kann folglich nichts dazu sagen.

Unter XP heißt es
Zitat:

Um ein Fenster zu schließen, klicken Sie auf die X-Schaltfläche in der Ecke oben rechts des Fensters.
Mag ja sein, dass auch Microsoft im Laufe der Zeit gemerkt hat, dass die Option, ein Fenster beim Klick auf das Kreuz in die TNA zu minimieren, von den Anwendern gewünscht wird und entsprechend darauf reagiert.

Ich denke, es ist sinnlos, darüber zu diskutieren, welche Lösung sinnvoll ist, und welche nicht.
In Anbetracht der Tatsache, dass es Anwender gibt, die das Eine wollen, andere wiederrum das Andere, sollte man den Anwendern die Möglichkeit geben, selber zu entscheiden - das ist aus meiner Sicht die einzig sinnvolle Lösung, die ich auch so umsetze, wie bereits oben beschrieben.

sirius 22. Apr 2008 11:51

Re: Programm mit TrayIcon - Wie Beenden?
 
Ich danke schonmal für die erstem Meinungen.
Sie sind genauso verschieden, wie ich es gedacht, aber nicht erhofft habe.


Eine kurze Zwischenfrage:
Zitat:

Zitat von s-off
So ist es im Windows-Sinne auch vorgesehen - jedenfalls geht jegliche von MS veröffentlichte Dokumentation in diese Richtung.

Kannst du diese Dokumentation bitte mal genauer spezifizieren, also Link :zwinker:

Wie du ja gelesen hast, hält sich selbst Microsoft nicht an eine klare Richtlinie:
[Ironie]
Zitat:

Zitat von Sirius
Man sieht an dem Beispiel auch ganz klar, was Microsoft bevorzugt!!! ActiveSync vs. Outlook

[/Ironie]

s-off 22. Apr 2008 11:57

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von sirius
Eine kurze Zwischenfrage:
Zitat:

Zitat von s-off
So ist es im Windows-Sinne auch vorgesehen - jedenfalls geht jegliche von MS veröffentlichte Dokumentation in diese Richtung.

Kannst du diese Dokumentation bitte mal genauer spezifizieren, also Link :zwinker:

Siehe Beitrag vor diesem.
Wie gesagt: ich scheine da nicht auf dem aktuellsten Stand zu sein.

Dass die ursprüngliche Intention Microsofts war, das Fenster mit dem X zu schließen - ich glaube, darüber müssen wir nicht diskutieren, oder?

Edit: da habe ich doch noch etwas seitens Microsoft gefunden; guckst Du hier

Und das ist für Vista!

calculon 22. Apr 2008 12:07

Re: Programm mit TrayIcon - Wie Beenden?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich finde eMule hat das mit dem Caption-Button am besten gelöst. Gibt's bei den Jedis übrigens auch (JvCaptionButton). Hier ist allerdings das Problem, wenn man mit den AlphaControls skinnen will, dann verschwindet diese leider wieder...

sirius 22. Apr 2008 12:11

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von s-off
Dass die ursprüngliche Intention Microsofts war, das Fenster mit dem X zu schließen - ich glaube, darüber müssen wir nicht diskutieren, oder?

Edit: da habe ich doch noch etwas seitens Microsoft gefunden; guckst Du hier

Ja, die ursprüngliche Idee war ganz klar, das Programm zu beenden.
Oder war die Idee das Fenster zu schließen. :gruebel:

In deinem Link vermischt Microsoft ja beides. Einmal heißt es da "Fenster schließen. Das stimmt ja auch, wenn das Programm in die TNA verschwindet, wird das Fenster geschlossen. Es ist weg. Und dann in der Erklärung kommen sie mit "Wenn Sie die Arbeit mit einem Programm oder Dokument abgeschlossen haben und das Programm nicht sofort wieder benötigen, können Sie es schließen."
Scheint zu bedeuten, dass Mirsosoft ein Beenden des Programmes gleichsetzt mit dem Schließen eines Fensters. Demnach ist das rote Kreuz = Programm immer beenden.

s-off 22. Apr 2008 12:14

Re: Programm mit TrayIcon - Wie Beenden?
 
@calculon
Es geht hier explizit um den X-Button, nicht um irgendwelche Alternativen, ein Fenster sonstwo hin verschwinden zu lassen ;)


Ansonsten könnte ich auch auf PS Tray Factory verweisen, mit der man jedes Fenster in die TNA minimieren kann, indem man mit der rechten Maustaste auf den Minimieren-Button klickt. Aber darum geht es hier nicht ;)

@Sirius: wenn ich bei einer Form <> MainForm auf das X klicke, dann schließe ich das Fenster; also sollte klar sein, was gemeint ist - Fenster schließen, nicht Anwendung beenden ;)

calculon 22. Apr 2008 12:17

Re: Programm mit TrayIcon - Wie Beenden?
 
Ja, das verstehe ich schon, aber durch das Definieren eines weiteren Buttons in der Titelleiste beendet das rote X die Anwendung wie gewohnt und auch das Befördern in den Tray geht genauso unkompliziert.

s-off 22. Apr 2008 12:20

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von calculon
Ja, das verstehe ich schon, aber durch das Definieren eines weiteren Buttons in der Titelleiste beendet das rote X die Anwendung wie gewohnt und auch das Befördern in den Tray geht genauso unkompliziert.

Ja, das verstehe ich auch schon - darum geht es aber nicht ;)

Es gibt auf die gestellte Frage nur zwei Antworten:

1. "Ja, toll, dass sich das Fenster beim Klick auf das X in die TNA minimiert", oder
2. "Ja, toll, dass sich das Fenster beim Klick auf das X schließt"

Das ist Thema.

Punkt 3. "Ich fände es aber besser, wenn es einen vierten Button in der Caption gäbe..." steht nicht zur Auswahl ;)

calculon 22. Apr 2008 12:21

Re: Programm mit TrayIcon - Wie Beenden?
 
Okay, comprendo... Grundsatzdiskussion ;-)

cruiser 22. Apr 2008 13:42

Re: Programm mit TrayIcon - Wie Beenden?
 
Hier beisst sich, glaube ich, ein bisschen die Auffassung von Delphi und der Umsetzung der Windowskonzepte.

Die meisten Tray-Komponenten werden "auf eine Form geschmissen" und hängen auch an dieser. Somit wissen wir als Programmierer: "Dat Fensterl is ja noch offe!"

Ein Stino-Anwnder aber sagt sich: "Das Programm wartet auf mich da unten neben der Uhr. Jetzt brauch ich es nicht aber ich kanns ja über das Bildchen wieder auf machen."

Das Symbol im Tray stellt für mich die Anwendung dar, die im Hintergrund ggf. noch irgendwas macht (nur dann ist ein Trayicon gerechtfertigt). Programmfenster Werden durch das Programm gestartet (auch wenn das Trayicon mit dem MainForm verknüpft ist). Drück ich bei einer Anwendung mit TNA-Symbol also auf ein X erwarte ich, dass sich das Fenster schliesst und nicht die Anwendung: ergo minimieren in den Tray.

Allerdings sollte man das einstellen können...

Wie wär es zum Beispiel beim ersten Minimieren/Schliessen einen Dialog mit der Frage zur weiteren Vorgehensweise zu stellen? Nur so als Vorschlag. Der Dialog nervt genau einmal, dannach läuft es so, wie es der Nutzer will.

bluesbear 22. Apr 2008 13:59

Re: Programm mit TrayIcon - Wie Beenden?
 
Hmmmm :gruebel: wie wäre eine Argumentation in umgekehrter Richtung?
Das Kreuzchen rechts oben schließt ein Fenster. War dieses Fenster das Hauptfenster einer Anwendung, wird die Anwendung beendet.
Klicke ich auf das Kreuzchen, und sehe dann das Programm in der TNA, dann weiß ich, aha, dieses Fenster war nicht das Hauptfenster der Anwendung, sondern nur ein Dialog. :mrgreen:

s-off 22. Apr 2008 14:11

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von bluesbear
Hmmmm :gruebel: wie wäre eine Argumentation in umgekehrter Richtung?
Das Kreuzchen rechts oben schließt ein Fenster. War dieses Fenster das Hauptfenster einer Anwendung, wird die Anwendung beendet.
Klicke ich auf das Kreuzchen, und sehe dann das Programm in der TNA, dann weiß ich, aha, dieses Fenster war nicht das Hauptfenster der Anwendung, sondern nur ein Dialog. :mrgreen:

Toll, wenn ich nach jedem Schließen eines Dialoges die Mainform wieder aus der TNA kramen muss ... :zwinker:

@cruiser:
Wann etwas gerechtfertigt ist, liegt immer im Auge des Betrachters. Dafür wirst Du keine allgemeingültige Aussage finden.

bluesbear 22. Apr 2008 14:23

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von s-off
Toll, wenn ich nach jedem Schließen eines Dialoges die Mainform wieder aus der TNA kramen muss ... :zwinker:

Nee, eben nicht das MainForm! Es gibt Programme, die wohnen halt in der TNA, und man kann über Dialoge mit ihnen reden.
Das das technisch gesehen eigentlich doch das MainForm ist, ist dem Anwender egal.
So rum hatte ich das gemeint. :angel2:

cruiser 22. Apr 2008 14:46

Re: Programm mit TrayIcon - Wie Beenden?
 
me too

Was die MainForm ist ist 99% der Endanwender letztlich schnuppe. Hauptsache es geht. Wenn es um die Frage geht, was Standard ist: Lass den Benutzer selbst entscheiden, wie oben gesagt mit einem gut erklärenden Dialog beim ersten Minimieren und/oder Schliessen der "MainForm", was denn da gerade passiert.

s-off 22. Apr 2008 15:10

Re: Programm mit TrayIcon - Wie Beenden?
 
Zitat:

Zitat von bluesbear
Zitat:

Zitat von s-off
Toll, wenn ich nach jedem Schließen eines Dialoges die Mainform wieder aus der TNA kramen muss ... :zwinker:

Nee, eben nicht das MainForm! Es gibt Programme, die wohnen halt in der TNA, und man kann über Dialoge mit ihnen reden.
Das das technisch gesehen eigentlich doch das MainForm ist, ist dem Anwender egal.
So rum hatte ich das gemeint. :angel2:

Okay, da habe ich Dich ganz klar mißverstanden.

Für mich hörte es sich so an:
Ich klicke auf das Kreuz eines Fensters. Das Fenster schließt sich und plötzlich liegt das ProgrammIcon in der TNA.

Da dachte ich, dass sich beim Schließen irgendeines untergeordneten Fensters automatisch das Programm in die TNA verzieht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:19 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