Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie schließe ich ein Trayicon über den BalloonHint (https://www.delphipraxis.net/97322-wie-schliesse-ich-ein-trayicon-ueber-den-balloonhint.html)

Emanuel80 8. Aug 2007 16:07


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

RavenIV 9. Aug 2007 08:07

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...

Quailin 9. Aug 2007 11:03

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;

phlux 9. Aug 2007 12:00

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??

Emanuel80 9. Aug 2007 15:12

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?

Emanuel80 10. Aug 2007 15:19

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 00:18 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