![]() |
Farbtiefe bei Tray-Icon anpassen
Hallo,
meine Anwendung soll ein Tray-Icon anzeigen. Dazu gibt es ja schon unzählige Beiträge. Was ich allerdings nirgendwo finden konnte ist folgendes: Unter Windows XP werden Tray-Icons meist mit 256 Farben (oder sogar 24 bit?) dargestellt, unter anderen Windows-Versionen (z.B. Win2k) nur mit 16 Farben. Wie kriege ich es jetzt hin, dass je nach eingestellter Symbol-Farbtiefe des Systems ein jeweils darauf optimiertes Icon angezeigt wird? (Es sollte nicht die Windows-Version als Kriterium benutzt werden, da man es in manchen Versionen umstellen kann...) Cu, Chris |
Re: Farbtiefe bei Tray-Icon anpassen
Wenn ich mich recht entsinne kann man ja in einer *.ico Datei mehrere Versionen seines Icons abspeichern, z.B. 32x32-128x128px in einer Datei. Wenn du also die verschiedenen Farbtiefen in einer Datei zusammenfasst, könnte ich mir vorstellen dass sich das OS das passende raussucht, wie es das bei der Größe auch tut. Das ist aber nur eine Vermutung und müsste experimentell nachgewiesen werden :mrgreen:
|
Re: Farbtiefe bei Tray-Icon anpassen
wenn der tip von Meflin nicht funktionieren sollte, funktioniert evtl. das:
in der registry unter HKEY_CURRENT_USER \ Control Panel \ Desktop \WindowMetrics den Wert für "Shell Icon BPP" auslesen (weis nicht, ob das auch für Tray-Icons gilt) und je nach Wert (8/16/24) das passende Trayicon zuzuweisen HTH Frank |
Re: Farbtiefe bei Tray-Icon anpassen
Hallo,
danke für eure Mühe! Der Tipp von Meflin ist nicht schlecht (diese Idee hatte ich auch schon). Bisher habe ich das Icon aber aus einer ImageList genommen, und diese unterstützt nun mal nur ein Bild und nicht mehrere. Das Problem besteht jetzt also darin, dass ich nicht weiß, wie ich das Handle einer ganzen Icon-Datei (d.h. eigentlich soll es dann eine Resource sein) bekomme, um dieses im Tray darzustellen. Kann mir da vielleicht einer helfen? Cu, Chris |
Re: Farbtiefe bei Tray-Icon anpassen
@_frank_:
Ich habe deinen Tipp natürlich auch probiert (auf mehreren Rechnern). Der genannte Registry-Wert gibt allerdings nur die Symbol-Farbtiefe des Systems an, die sich von der des Trays unterscheiden kann (Beispiel: Windows 2000, hier hat das Tray immer nur 16 Farben). Nach langem Googeln habe ich festgestellt, dass es wohl tatsächlich ein größeres Problem ist, ein Icon bestehend aus mehreren "Bildchen" zu laden, da die TIcon-Komponente wohl nur ein Bild laden kann. Hat vielleicht irgendjemand eine Idee, wie dies dennoch zu bewerkstelligen wäre? Cu, Chris |
Re: Farbtiefe bei Tray-Icon anpassen
Zitat:
|
Re: Farbtiefe bei Tray-Icon anpassen
Eben gerade nicht!!!
Wie ich schon schrieb: Zitat:
Unter Windows XP stimmt die Tray-Farbtiefe mit dem Schlüssel überein, unter Windows 9x kann ich es gerade nicht testen. |
Re: Farbtiefe bei Tray-Icon anpassen
Zitat:
Allerdings verstehe ich nun nicht ganz wieso du das Icon in eine TIcon-Komponente laden musst :stupid: um dir un weiterzuhelfen wäre es wohl hilfreich zu wissen wie du deine Anwendung überhaupt in den Tray bringst! Wenn du z.B. eine Komponente wie TTrayIcon verwendest musst du doch die *.ico-Datei ienfach nur zuweisen, egal wie viele Versionen die letztlich beinhaltet! |
Re: Farbtiefe bei Tray-Icon anpassen
Im Prinzip ist es mir egal, auf welche Weise das Icon erzeugt wird, wenn es funktioniert und mit entsprechender Farbtiefe angezeigt wird :).
Eigentlich wollte ich es direkt per API-Befehl erzeugen, und zwar nach folgendem Tutorial: ![]() Eine Komponente wäre mir aber ebenso recht. Ich habe jetzt mal eben die TTrayIcon VCL. Version 1.3 von Pete Ness probiert. Aber dort wird das Icon (wie vermutlich in anderen Komponenten auch) über ein Image geladen ==> also ist nur ein Bildchen verfügbar. Ich hoffe ja immernoch, dass irgendjemand mir da weiterhelfen kann... (bei anderen Programmen klappt es ja schließlich auch!) Cu, Chris |
Re: Farbtiefe bei Tray-Icon anpassen
Zitat:
![]() meflin's Überlegung vom Anfang mit den mehreren Bit - Versionen war schon ganz richtig, so würde ich es auch machen. Dann würde ich das Beispiel mit dem direkten API nehmen und das Handle zu hIcon einfach über LoadIcon bekommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 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