AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tooltip im Systray ändern

Ein Thema von Yan · begonnen am 4. Jan 2004 · letzter Beitrag vom 6. Jan 2004
Antwort Antwort
Yan

Registriert seit: 26. Sep 2003
Ort: Aachen
129 Beiträge
 
Delphi 7 Personal
 
#1

Tooltip im Systray ändern

  Alt 4. Jan 2004, 21:19
Guten Abend!

Ich habe (mal wieder) ein Problem.
Und zwar liegt ein Icon meiner Anwendung im Systray und zeigt im dazugehörigen Tooltip
den momentanen Status an. Dieser wird häufig geändert. Wie kann ich jetzt diesen Tooltip
ändern, ohne den ganzen Systray-Eintrag zu entfernen und mit neuem Tooltip wieder anzuzeigen??

Lästig ist auch, dass dann das Systray-Icon wieder ganz rechts steht. (Sieht ja auch nicht gerade
so toll aus, wenn da eine Anwendung immer wieder so auf sich aufmerksam macht...)

Ich kann jede Hilfe gebrauchen!!
Yannick F.
mfG - Yannick
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Tooltip im Systray ändern

  Alt 4. Jan 2004, 21:59
Kuck dir mal:
Shell_NotifyIcon(NIM_MODIFY,@NID); an. Wobei NID vom Typ TNotifyIconData ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Yan

Registriert seit: 26. Sep 2003
Ort: Aachen
129 Beiträge
 
Delphi 7 Personal
 
#3

Re: Tooltip im Systray ändern

  Alt 5. Jan 2004, 10:08


Im Moment habe ich folgenden Code:
Delphi-Quellcode:
procedure TaskBarAddIcon;
var
  tnid: TNOTIFYICONDATA ;
begin
  with tnid do
  begin
    cbSize := sizeof(TNOTIFYICONDATA);
    Wnd := Form1.handle;
    uID := 1;
    uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    uCallbackMessage := WM_TASKBAREVENT;
    hIcon := application.icon.handle;
  end;

  strcopy(tnid.szTip,'Status');
  Shell_NotifyIcon(NIM_ADD, @tnid);
end;
Kann ich dann das ganze einfach nochmal mit einem anderen Tooltip ausführen?
Yannick F.
mfG - Yannick
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Tooltip im Systray ändern

  Alt 5. Jan 2004, 10:31
Sicher kannst du. Nur anstelle von NIM_ADD benutzt du NIM_MODIFY.

Idealer ist es aber, wenn du die TNotifyIcon-Variable global deklarierst und grundlegende Einstellungen von Anfang an festlegst, bzw. im "OnCreate"-Ereignis zuweist. Dann kannst du das TNA-Symbol hinzufügen, modifizieren und entfernen, ohne ständig alle Eigenschaften (= Einstellungen) neu angeben zu müssen.

Schau dir doch mal ein paar Hier im Forum suchenTNA-Beispiele im Forum an. ´s sollten einige sein.
  Mit Zitat antworten Zitat
dakleene

Registriert seit: 2. Jan 2004
Ort: Bremen
9 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Tooltip im Systray ändern

  Alt 5. Jan 2004, 10:55
Wo wir gerade dabei sind, ich hab dazu auch gleich direkt eine frage,

und zwar arbeite ich auch schon einige zeit mit systrayIcon's und auch mit
Shell_NotifyIcon(NIM_MODIFY,@NID); (sieht auch gleich viel schoener aus) und da ich meine taskleiste nicht gern allzuvoll habe verstecke ich meine tools auch immer gern vor ihr.

Delphi-Quellcode:
procedure THauptForm.FormShow(Sender: TObject);
var
  TaskBar : HWnd;
begin
  TaskBar := GetWindow(Handle,GW_Owner);
  ShowWindow(TaskBar,SW_Hide);
end;
jedoch sieht man beim starten meiner tools leider immer ganz kurz dass tool in meiner taskleiste, also bevor HauptForm.Show eintritt. Da muss es doch auch eine moeglichkeit geben dass abzuaendern dass mir dies kein dorn mehr im auge ist weiss da jmd evtl rat ?
holla dass ging aber auch schonmal schneller :-d
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Tooltip im Systray ändern

  Alt 5. Jan 2004, 11:29
Zitat von dakleene:
und zwar arbeite ich auch schon einige zeit mit systrayIcon's [...]
SysTray? Was is´n das eigentlich?
Zitat von PSDK:
The taskbar notification area is sometimes erroneously called the "tray."
Soll heißen: der korrekte Ausdruck ist eigentlich Taskbar Notification Area, kurz TNA.

Zitat:
[...](sieht auch gleich viel schoener aus) und da ich meine taskleiste nicht gern allzuvoll habe verstecke ich meine tools auch immer gern vor ihr.
Ob´s aber besser ist, wenn die TNA vor Symbolen überquillt?

Zitat:
jedoch sieht man beim starten meiner tools leider immer ganz kurz dass tool in meiner taskleiste, also bevor HauptForm.Show eintritt. Da muss es doch auch eine moeglichkeit geben dass abzuaendern dass mir dies kein dorn mehr im auge ist weiss da jmd evtl rat ?
Kommt auf deine Tools an. Wenn die Form ohnehin nicht als Benutzeroberfläche gedacht ist, dann würde es sich anbieten, auf die VCL zu verzichten und die TNA-Programme generell ohne Hauptfenster (bzw. mit unsichtbaren Hauptfenster von 0px Größe) zu schreiben.

Evtl. reicht´s aber auch, die Haupt-Form beim Start nicht anzeigen zu lassen. Da gab´s auch eine Befehlszeile dafür, allerdings muss das schon Jahre her sein, dass ich so was mit einem VCL-Programm gemacht habe. ... Soll heißen: ich weiß es im Augenblick nicht.
  Mit Zitat antworten Zitat
Yan

Registriert seit: 26. Sep 2003
Ort: Aachen
129 Beiträge
 
Delphi 7 Personal
 
#7

Re: Tooltip im Systray ändern

  Alt 6. Jan 2004, 09:27
'Morgen!
Erstmal vielen Dank an euch! Jetzt läuft's und meine App zeigt vernünftig ihren Status an!

Jetzt zu dem anderen Problem:
Zitat von MathiasSimmack:
Evtl. reicht´s aber auch, die Haupt-Form beim Start nicht anzeigen zu lassen.
Würde so gehen (einfach in Projekt-Quellcode einfügen):
Delphi-Quellcode:
[...]
Application.ShowMainForm:= false;
[...]
Habe aber noch nicht getestet ob das hilft...

Sonst würde ich versuchen schon bei "Form.OnActivate" den Taskbar-Eintrag zu verstecken.
Oder nimm ein anderes Ereignis, das auf jeden Fall vor OnShow auftritt, weil da wird ja erst die Form angezeigt und dann versteckt.

[edit]Da wurde aus dem "versuchen" doch tatsächlich ein "verseuchen"...[/edit]
Yannick F.
mfG - Yannick
  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 16:22 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