Einzelnen Beitrag anzeigen

Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#1

szTip von TNotifyIconData aktualisieren

  Alt 8. Dez 2003, 19:49
Hallo Freunde ,

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:
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;
Hoffe, ihr wisst Rat!

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?
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat