AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Wie schließe ich ein Trayicon über den BalloonHint

Wie schließe ich ein Trayicon über den BalloonHint

Ein Thema von Emanuel80 · begonnen am 8. Aug 2007 · letzter Beitrag vom 10. Aug 2007
Antwort Antwort
Emanuel80

Registriert seit: 8. Aug 2007
3 Beiträge
 
Delphi 2005 Enterprise
 
#1

Wie schließe ich ein Trayicon über den BalloonHint

  Alt 8. Aug 2007, 16:07
Hallo alle zusammen,

ich verwende die Komponente TCoolTrayIcon um mehrere Icons im Tray anzuzeigen. Wenn das Event OnMouseEnter zum TrayIcon ausgelöst wird, zeige ich den BalloonHint an. Nun will ich über das X in der Sprechblase das TrayIcon ausblenden. Dabei stoße ich auf zwei Probleme. Das erste Problem es gibt kein Event in TCoolTrayIcon für das drücken auf das X in der Sprechblase. Wie kann ich dieses Event erstellen.
Es gibt das Event OnBalloonHintClick. Mit diesen Event habe ich versucht das TrayIcon auszublenden. Dabei habe ich festgestellt dass der Sender eine Instanz von Typ TTrayIconHandler ist und nicht von der Klasse TCoolTrayHandler. Und somit komme ich zu meinen zweiten Problem, wie kann ich in diesen Fall auf die Instanz von TCoolTrayIcon zugreifen und das Icon im Tray schließen. Für mögliche Lösungen wäre ich sehr dankbar.

Liebe Grüße,
Emanuel
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Wie schließe ich ein Trayicon über den BalloonHint

  Alt 9. Aug 2007, 08:07
Das ist aber nicht Windows-Standard, dass beim Schliessen (mit (X)) des BaloonHint das Tray-Icon verschwindet.
Normalerweise geht nur der BaloonHint weg.

Erstelle doch einfach ein Popup für das Tray-Icon mit einem Eintrag "Schliessen".
Mit diesem Menupunkt kannst Du dann das Tray ausblenden.

Man kann den Anwender auch mit Gewalt verwirren...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Quailin
Quailin

Registriert seit: 8. Nov 2005
Ort: Frauenfeld
29 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Wie schließe ich ein Trayicon über den BalloonHint

  Alt 9. Aug 2007, 11:03
Ich arbeite bei meinen Programmen auch mit der TCoolTrayIcon klasse,
nutze aber den Baloonhint als rein informativ

Um das Programm zu schliessen empfehle ich dir dass du dem CoolTrayIcon auf die rechte Maustaste ein kleines Popupmenu codest, welches den Punkt Colse beinhaltet...

Ansonsten schliess ich mich Raven an, wieso den User verwirren?

Delphi-Quellcode:
//Show und Hide des Programms, wurde vom User gewünscht
procedure TMainForm.Show1Click(Sender: TObject);
begin
    if MainForm.Showing then CoolTrayIcon1.HideMainForm else CoolTrayIcon1.ShowMainForm;
    CoolTrayIcon1.ShowBalloonHint('Information','The program is still running', bitInfo, 10);
end;

procedure TMainForm.BeendenClick(Sender: TObject);
begin
    Close;
end;
"Irgendwann, vieleicht aber auch nie, wird die Zeit kommen, wo ich dich um einen kleinen Gefallen bitte, solange ich dies nicht tu, soll dies ein Geschenk sein" Don Vito Corleone
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#4

Re: Wie schließe ich ein Trayicon über den BalloonHint

  Alt 9. Aug 2007, 12:00
Schließen sich PopUps nicht generell wenn man draufklickt oder haben ein schließen Kreuz??
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Emanuel80

Registriert seit: 8. Aug 2007
3 Beiträge
 
Delphi 2005 Enterprise
 
#5

Re: Wie schließe ich ein Trayicon über den BalloonHint

  Alt 9. Aug 2007, 15:12
Das zweite Problem habe ich jetzt lösen können. In der Klasse TCoolTrayIconHandler habe ich Membervariable vom Typ TCoolTrayIconHander hinzugefügt. Und mit Hilfe eines eigenen Constructor in der Klasse TCoolTrayIcon weiße ich der Klasse TTrayIconhandler den Owner von TCoolTrayIcon zu. Somit kann ich über eine Instanz von TTrayIconHandler auf die zugehörige Instanz von TCoolTrayIcon zugreifen. Und jetzt kann ich mit einen Klick auf die Sprechblase das Icon schließen. Leider wird das Event OnBalloonHintClick nicht bei einen Mausklick auf das X in der Sprechblasse ausgeführt.

Gibt es eine Möglichkeit auf einen Mausklick auf das X in der Sprechblase zu reagieren? Oder weiß jemand wie ich das X in der Sprechblase ausblenden kann?
  Mit Zitat antworten Zitat
Emanuel80

Registriert seit: 8. Aug 2007
3 Beiträge
 
Delphi 2005 Enterprise
 
#6

Re: Wie schließe ich ein Trayicon über den BalloonHint

  Alt 10. Aug 2007, 15:19
Ich habe leider keine vernünftige Lösung gefunden das TrayIcon über das BallonHint über das X zu schließen. Ich habe festgestellt, dass das Ente OnBalloonHintTimeOut auch auf Klicken von X reagiert. Damit hatte sich die Sache für mich erledigt. Schade eigentlich.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:51 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