![]() |
Anwendungs-Icons auslesen (für Dateimanager)
Hallo zusammen,
ich schreibe gerade an einem Dateimanager, der in dem aktuellen Stand auch recht ordentlich funktioniert. Zur Darstellung der Verzeichnisstrukturen benutze ich den VirtualTreeView. Jetzt möchte ich gerne bei den Dateien das entsprechende Anwendungs-Icon anzeigen lassen. Wie man an ein Anwendungs-Icon über die Registry kommt, würde ich hinbekommen, nur ist die Frage, wie man es am performantesten macht. Mein Ansatz wäre: 1. bei jedem Auftauchen einen neuen Dateiendung 2. die Endung (z.B. "txt") in ein 2-Dimensionales Array schreiben 3. das Anwendungs-Icon in eine Imagelist packen und den Index des Bildes in der IL ebenfalls in das Array schreiben. Also z.B. ['text',2] 4. dann bei jeder weiteren Datei, die Dateiendung mit dem Array abgleichen, ob diese bereits darin vorhanden ist und wenn ja, den ImageIndex lesen und für die Datei setzen. Wenn die Endung noch nicht enthalten ist, wieder bei 1. beginnen. Oder gibt es da einen besseren Ansatz? Gruß Igotcha |
Re: Anwendungs-Icons auslesen (für Dateimanager)
Zitat:
![]() ...:cat:... |
Re: Anwendungs-Icons auslesen (für Dateimanager)
Ja danke Dir, kann ich gebrauchen, aber evtl. nicht bzgl. meiner Fragestellung ;-)
Wenn ich das richtig sehe, kann ich das benutzen, um das Icon abzufragen, welches man z.B. unter "Eigenschaften" im Kontextmenü einer Datei oder eines Ordners sieht. Mit SHGFI_SMALLICON könnte ich auch ein kleines Icon bekommen. Nur ist die Frage: Will und muss ich diese Procedure für jede Datei aufrufen, die ich durch rekursive Suche finde? Ich benutze ja den VirtualTreeView nicht, um zum einen sehr performant eine Treeview-Sicht zu realisieren, auf der anderen Seite aber durch "Anzahl der gefundenen Dateien"-Aufrufe der o.g. Procedure das Anwendungs-Icon auszulesen und dadurch wieder einen Einbruch der Performance zu erhalten (was ein Satz hehe). Fassen wir mal zusammen: Ich kenne jetzt 2 Möglichkeiten, das Anwendungsicon einer Datei zu ermitteln. Mir geht es aber unabhängig davon, wie ich technisch ein Icon auslese, darum, wie ich das im Rahmen einer rekursiven Dateiermittlung am performantesten gestalte (s. mein Ansatz über ein Array und eine Imagelist). Meine Lösung hätte aus meiner Sicht zumindest den Nachteil, dass es bei z.B. 100 Anwendungen/Dateitypen auch evtl. 100 verschiedene Icons in meiner Imagelist geben würde. Gruß Igotcha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 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