![]() |
szTip von TNotifyIconData aktualisieren
Hallo Freunde :hi: ,
ich hab ein TrayIcon gemacht mit TNID, aber jetzt will ich jede sekunde den szTip aktualisieren, weiss aber nicht, wie ich das am besten mache... ich hab schon eine möglichkeit, die funktioniert, aber da muss ich das icon immer erst entfernen und dann mit dem neuen text wieder hinzufügen, das ist doof und flimmert! wie kan ich denn nur den text aktualisieren? hier der text für das icon:
Delphi-Quellcode:
Hoffe, ihr wisst Rat!
procedure TForm1.AddIcon(Enabled: Boolean);
var TNID : TNotifyIconData; begin FillChar(TNID,Sizeof(TNID),0); TNID.cbSize := SizeOf(TNotifyIconData); TNID.Wnd := Form1.Handle; TNID.uID := 1; TNID.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; TNID.uCallbackMessage := WM_TASKBAREVENT; if Enabled then begin tnid.hIcon := Form1.IconAN.Picture.Icon.Handle; strcopy(TNID.szTip, 'ShutMeDown (aktiv)'); //hier soll n timer hin! (jede sekunde refreshen) end else begin tnid.hIcon := Form1.IconAUS.Picture.Icon.Handle; strcopy(TNID.szTip, 'ShutMeDown (inaktiv)'); end; Shell_NotifyIcon(NIM_ADD, @TNID); end; procedure TForm1.ChangeIcon(Enabled: Boolean); var TNID : TNotifyIconData; begin TNID.Wnd := Form1.Handle; TNID.uID := 1; TNID.uFlags := NIF_ICON; if Enabled then begin TNID.hIcon := IconAN.Picture.Icon.Handle; Icon := IconAN.Picture.Icon; end else begin TNID.hIcon := IconAUS.Picture.Icon.Handle; Icon := IconAUS.Picture.Icon; end; Shell_NotifyIcon(NIM_MODIFY, @TNID); end; procedure TForm1.RemoveIcon; var TNID : TNotifyIconData; begin FillChar(TNID,Sizeof(TNID),0); TNID.cbSize := sizeof(TNotifyIconData); TNID.Wnd := Form1.Handle; TNID.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; TNID.uCallbackMessage := WM_TASKBAREVENT; TNID.szTip := 'ShutMeDown (inaktiv)'; TNID.uID := 1; Shell_NotifyIcon(NIM_DELETE, @TNID); end; MfG Lefko. PS: Wenn hier jemand meint, das sei aus seinem Programm oder so, ich hab das zum Teil aus einem Freeware-Prog-Open-Source (weiss aber nicht mehr woher) ok? :) |
Re: szTip von TNotifyIconData aktualisieren
![]() Besonders der Teil zu NIM_MODIFY ist interessant. |
Re: szTip von TNotifyIconData aktualisieren
also ist ja ganz schön viel zeugs. Am besten du machst das TNID global oder halt als variable der klasse und nicht nur in der funktion oder procedure. Dann einfach den sztip ändern und mit
Shell_NotifyIcon(NIM_MODIFY, @TNID); sollte das ganze dann aktuallisiert werden. so hab ichs zumindest bei meinen applicationen wenn ich das icon animiere und mit dem sztip ist ja auch nix anderes |
Re: szTip von TNotifyIconData aktualisieren
alles klar leute,
das funktioniert jetzt! hab TNID als variable der klasse definiert und nur noch den sztip geändert! aber eins wüsste ich ncoh gern: kann man das irgendwie auch so machen, dass man nicht immer erst den cursor n stückchen bewegen muss, damit die zeit neu angezeigt wird? so, dass sozusagen auch ein timer im sztip läuft, der jede sekunde aktualisiert wird! MfG Lefko. |
Re: szTip von TNotifyIconData aktualisieren
Huhu, weiss keiner, wie sowas gehen könnte??
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 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