![]() |
Wie schließe ich ein Trayicon über den BalloonHint
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 |
Re: Wie schließe ich ein Trayicon über den BalloonHint
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... |
Re: Wie schließe ich ein Trayicon über den BalloonHint
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; |
Re: Wie schließe ich ein Trayicon über den BalloonHint
Schließen sich PopUps nicht generell wenn man draufklickt oder haben ein schließen Kreuz??
|
Re: Wie schließe ich ein Trayicon über den BalloonHint
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? |
Re: Wie schließe ich ein Trayicon über den BalloonHint
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. :(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 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 by Thomas Breitkreuz