SHGetFileInfo kenne ich, auch wenn ich es nicht sonderlich gut kenne. Ich weiß zwar nicht ganz genau was du meinst, aber iIcon
liefert eine Indexnummer, die nur ein mal pro Symbol vorkommt.
Auch, aber vor allem auch SHGFI_ICONLOCATION und dann szDisplayName in der Info-Struktur. Da steht ja der Dateiname der Datei drin, in der das Icon liegt, und in iIcon der Index innerhalb der Datei.
Nun brauchst du nur noch ein Dictionary (in Delphi 7 wohl am sinnvollsten eine TStringList oder THashedStringList) um diese Dateinamen auf die schon geladenen Icons zu mappen.
Was ist eigentlich in der ImageList, wenn Du ständig 'Icon.Free' aufrufst?
Das Icon. Siehe Doku:
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Zitat:
Because the system does not save hicon, you can destroy it after the function returns