AGB  ·  Datenschutz  ·  Impressum  







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

Icons aus Shell32.dll

Ein Thema von Tpercon · begonnen am 12. Jul 2002 · letzter Beitrag vom 22. Aug 2004
Antwort Antwort
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.106 Beiträge
 
Delphi 11 Alexandria
 
#1
  Alt 13. Jul 2002, 12:49
Moin Tpercon,

würde ich mal von ausgehen.
Was eventuell möglich wäre (ich kenne jetzt die Einstellmöglichkeiten von XP noch nicht):
Da es unter XP ja auch noch weitere Grössen für die Icons gibt, könnte es sein, dass man sich jeweils die Anzahl der Icons der verschiedenen Grössen "merken" muss, und das gewünschte Icon hat dann den entprechenen Offset. Soll heissen:

Es gibt vor den 16x16 Icons keine weiteren: Hier sollte die Nummer sich nicht ändern.
Bei den 32x32 Icons wäre es dann: Anzahl 16x16 Icons plus der gewünschten Nummer.

Beispiel:
Unter W2K SP 1 gibt es 108 Small Icons (16x16, Nummer 0 - 107).
Das Laufwerksicon ist das 9. Icon und hat somit die Nummer 8.
Soll das entsprechende Large Icon angesprochen werden, muss die Anzahl der Small Icons dazugezählt werden, also 108 + 8 = 116.

Mit dieser Methode spielt es dann wohl auch keine Rolle, ob sich die Anzahl der Icons vergrössert, denn dass es ein bestimmtes Icon nur in einer Grösse gibt erscheint mir für die Shell32 äusserst unwahrscheinlich.

Wie's jetzt unter XP aussieht kann ich leider nicht genau sagen, aber da die Funktion ExtractIconEx nur zwei Tabellen kennt, vermute ich mal, dass hier der Unterschied nur in der Grösse von Small und Large besteht, dass also, nur als Beispiel, 32x32 als Small und 64x64 als Large angesehen werden. Das wäre dann durch GetSystemMetrics zu ermitteln, dürfte sich aber auf die Nummerierung nicht auswirken.
Da es auch in den Headern keine Konstanten zu geben scheint, die weitere Icongrössen zulassen (so nach dem Motto Extra Large oder ähnlich) reichen die zwei Tabellen die ExtractIconEx zur Verfügung stellt dann auch. Nur wie gross nun Small bzw. Large ist hängt von den Systemeinstellungen ab.
Du wirst Dich also wohl darauf verlassen können, dass Icon #8 immer das kleine Laufwerksicon ist, aber dieses muss nicht zwingend 16x16 gross sein.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 19: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