AGB  ·  Datenschutz  ·  Impressum  







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

TrayIcon zur Laufzeit aktualisieren

Ein Thema von hugo1990 · begonnen am 4. Jan 2007 · letzter Beitrag vom 15. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
hugo1990

Registriert seit: 27. Dez 2006
166 Beiträge
 
Turbo Delphi für Win32
 
#1

TrayIcon zur Laufzeit aktualisieren

  Alt 4. Jan 2007, 00:32
Gibt es eine Möglichkeit, das TrayIcon der eigenen Anwendung zur Laufzeit zu aktualiesieren? Ich möchte nämlich eine Analoge-Uhr dort hinzeichnen, bei der sich die Zeiger Bewegen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: TrayIcon zur Laufzeit aktualisieren

  Alt 4. Jan 2007, 00:36
Kommt drauf an. Wie bekommst du denn dein TrayIcon in die TNA?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#3

Re: TrayIcon zur Laufzeit aktualisieren

  Alt 4. Jan 2007, 01:58
Zitat von hugo1990:
Gibt es eine Möglichkeit, das TrayIcon der eigenen Anwendung zur Laufzeit zu aktualiesieren? Ich möchte nämlich eine Analoge-Uhr dort hinzeichnen, bei der sich die Zeiger Bewegen.
Hallo,

du kannst mit Shell_NotifyIcon jederzeit das Icon ändern (dazu brauchst du ein Icon-Handle, z.B von LoadIcon). Allerdings brauchst du für eine Uhr sehr viele Icons.

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: TrayIcon zur Laufzeit aktualisieren

  Alt 4. Jan 2007, 02:00
Zitat von Reinhard Kern:
Allerdings brauchst du für eine Uhr sehr viele Icons.
Wieso? Er kann doch auf den Canvas vom Icon seine Zeiger zeichnen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
hugo1990

Registriert seit: 27. Dez 2006
166 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: TrayIcon zur Laufzeit aktualisieren

  Alt 4. Jan 2007, 13:19
Na das war ja einfach, eigentlich zu einfach, da hätte ich selber drauf kommen müssen. Einfach Shell_NotifyIcon(NIM_MODIFY,...).
  Mit Zitat antworten Zitat
woggly4

Registriert seit: 13. Jan 2007
11 Beiträge
 
#6

Re: TrayIcon zur Laufzeit aktualisieren

  Alt 13. Jan 2007, 12:36
Zitat von hugo1990:
Na das war ja einfach, eigentlich zu einfach, da hätte ich selber drauf kommen müssen. Einfach Shell_NotifyIcon(NIM_MODIFY,...).
das ganze habe ich ausprobiert aber es funktioniert nicht. ich bekomme die neuen icens über ImageList1.GetIcon(2,Application.Icon); . Liegt das vielleicht dadran, das es nicht funktioniert?
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#7

Re: TrayIcon zur Laufzeit aktualisieren

  Alt 15. Jan 2007, 02:16
Zitat von woggly4:
Zitat von hugo1990:
Na das war ja einfach, eigentlich zu einfach, da hätte ich selber drauf kommen müssen. Einfach Shell_NotifyIcon(NIM_MODIFY,...).
das ganze habe ich ausprobiert aber es funktioniert nicht. ich bekomme die neuen icens über ImageList1.GetIcon(2,Application.Icon); . Liegt das vielleicht dadran, das es nicht funktioniert?
Hallo,
GetIcon liefert ein TIcon, also ein Delphi-Objekt. Shell_NotifyIcon ist aber eine Win32-API-Funktion und kann damit nichts anfangen, sondern erwartet ein Icon-Handle (HIcon). Das müsste normalerweise TIcon.Handle sein, hab ich aber noch nicht probiert, weil ich meine Icons gleich mit API-Funktionen lade, und die liefern ja ein Handle (z.B. LoadIcon).

Gruss Reinhard
  Mit Zitat antworten Zitat
woggly4

Registriert seit: 13. Jan 2007
11 Beiträge
 
#8

Re: TrayIcon zur Laufzeit aktualisieren

  Alt 15. Jan 2007, 14:35
Könnte mir denn bitte jemand sagen, wie ich das hinbekomme, dass sich das Icon ändert, obwohl ich die Icons aus der Imagelist hole? Oder ist das gar nicht möglich?
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#9

Re: TrayIcon zur Laufzeit aktualisieren

  Alt 15. Jan 2007, 14:57
Zitat von woggly4:
Könnte mir denn bitte jemand sagen, wie ich das hinbekomme, dass sich das Icon ändert, obwohl ich die Icons aus der Imagelist hole? Oder ist das gar nicht möglich?
Hast du es denn mit Application.Icon.Handle probiert?

Gruss Reinhard
  Mit Zitat antworten Zitat
woggly4

Registriert seit: 13. Jan 2007
11 Beiträge
 
#10

Re: TrayIcon zur Laufzeit aktualisieren

  Alt 15. Jan 2007, 15:36
Zitat von Reinhard Kern:
Zitat von woggly4:
Könnte mir denn bitte jemand sagen, wie ich das hinbekomme, dass sich das Icon ändert, obwohl ich die Icons aus der Imagelist hole? Oder ist das gar nicht möglich?
Hast du es denn mit Application.Icon.Handle probiert?

Gruss Reinhard
Ja, ich habe das als Timer laufen. Sodass alle 15 Sekunden das Icon überprüft wird und geändert wird (jedenfalls SOLL das so funktionieren) Aber ich verstehe nicht, warum das Programm mit Shell_NotifyIcon zurecht kommt, wenn ich das Programm in den Systray packe. Das Symbol verändert sich auch, wenn ich das Programm hervorrufe und dann wieder in Tray packe... Ich möchte nur diesen Schritt übergehen. Also so: a) Icon a wird angezeigt und in systray gepackt b) icon a ändert sich in b - es wird aber noch das icon a im tray angezeigt. c) programm wird aus dem tray geholt und wieder reingepackt d) icon b ist nun auch im systray zu erkennen... Ich möchte halt nur Schritt c auslassen!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:50 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