Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Icon im Tray ändern zwecks Statusanzeige (https://www.delphipraxis.net/29746-icon-im-tray-aendern-zwecks-statusanzeige.html)

Igotcha 14. Sep 2004 09:20


Icon im Tray ändern zwecks Statusanzeige
 
Hallo zusammen,

ich habe ein Programm, welches minimiert im Tray sitzt und ich möchte bei neuen Mitteilungen das Icon ändern, um diesen Status anzuzeigen.

Ich weiß, dass das mit einer Jedi-Komponente geht, per Hand müsste dies doch auch zu machen sein, aber wie?

Es muss keine Animation sein, sondern nur zwei Icons als Stati für "keine neuen Nachrichten" und "neue Nachrichten vorhanden".

Meine Versuche, der Application über eine Imagelist die Icons zuzuweisen sind bisher gescheitert.

Gruß Igotcha

MathiasSimmack 14. Sep 2004 09:25

Re: Icon im Tray ändern zwecks Statusanzeige
 
Wie hast du es denn bisher in die TNA bekommen? Direkt per API-Code oder auch über eine Komponente? Im letzteren Fall sollte diese Komponente eine Möglichkeit zum Wechseln des Symbols bieten. Ansonsten verweise ich dich einfach mal auf die Ergebnisse im Forum: Hier im Forum suchenTNA NIM_MODIFY.

Igotcha 14. Sep 2004 09:45

Re: Icon im Tray ändern zwecks Statusanzeige
 
Habs per API-Code gemacht (hier im Forum gefunden), hier ein Ausschnitt:

Delphi-Quellcode:
 
     Application.ShowMainForm := False; //Programm gar nicht erst anzeigen
     IconData.cbSize := SizeOf(IconData);
     IconData.Wnd := Handle;
     IconData.uID := 100;
     IconData.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
     IconData.uCallBackMessage := WM_USER + 20;
     IconData.hIcon := Application.Icon.Handle;
     IconData.szTip := 'SysInfo';
     Shell_NotifyIcon(NIM_ADD, @IconData); // fügt das Icon ein
In diesem Fall wird dem TNA-Icon einfach das Handle des Application-Icons übergeben, so wie ich das sehe.

Nehmen wir mal an, ich habe meine beiden Icons in einer Imagelist, wie kann ich dann das TNA-Icon ändern?

Gruß Igotcha

Luckie 14. Sep 2004 09:58

Re: Icon im Tray ändern zwecks Statusanzeige
 
Hat dir doch Mathias geschrieben, in dem du das neue Icon der Struktur zuweist und dann NIM_MODIFY aufrufst.

Igotcha 14. Sep 2004 10:14

Re: Icon im Tray ändern zwecks Statusanzeige
 
Zitat:

Zitat von Luckie
Hat dir doch Mathias geschrieben, in dem du das neue Icon der Struktur zuweist...

Ehm ja, aber genau das ist mein Problem ;-)

Beim "WIE" weise ich zu, herrscht da gerade gähnende Leere...

In einem der Suchergebnisse wird davon ausgegangen, dass sich das Icon in einer *.res-Datei befindet. Ich benutze aber keine *.res-Datei.

MathiasSimmack 14. Sep 2004 10:24

Re: Icon im Tray ändern zwecks Statusanzeige
 
Ja, aber so ein Symbol in der Imageliste hat doch auch ein Handle. Gibt´s nicht sogar Funktionen wie "GetIcon" und Co., die entweder das komplette Bild oder eben auch nur das Handle zurückliefern?

Igotcha 14. Sep 2004 10:39

Re: Icon im Tray ändern zwecks Statusanzeige
 
Ja genau so eine "Handle"-Eigenschaft ist mir in der Imagelist aber irgendwie nicht untergekommen, deshalb ja meine Frage.

scp 14. Sep 2004 11:54

Re: Icon im Tray ändern zwecks Statusanzeige
 
Die Funktion GetIcon() übergibt die Grafik an ein TIcon, dieses wiederum hat das gewünschte Handle.


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