AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi szTip von TNotifyIconData aktualisieren
Thema durchsuchen
Ansicht
Themen-Optionen

szTip von TNotifyIconData aktualisieren

Ein Thema von Lefko · begonnen am 8. Dez 2003 · letzter Beitrag vom 10. Dez 2003
Antwort Antwort
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
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#2

Re: szTip von TNotifyIconData aktualisieren

  Alt 8. Dez 2003, 20:49
MSDN Library -- Shell Functions -- Shell_NotifyIcon()
Besonders der Teil zu NIM_MODIFY ist interessant.
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: szTip von TNotifyIconData aktualisieren

  Alt 8. Dez 2003, 21:32
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Lefko

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

Re: szTip von TNotifyIconData aktualisieren

  Alt 9. Dez 2003, 14:31
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.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Lefko

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

Re: szTip von TNotifyIconData aktualisieren

  Alt 10. Dez 2003, 16:03
Huhu, weiss keiner, wie sowas gehen könnte??
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:45 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