Ich habe gerade eine Stelle im Code wiedergefunden, die ich lange nicht beachtet habe.
Damit eine VirtualStringTree für ihre Dateieinträge die richtigen Icons angezeigt bekommt, verwende ich SHGetFileInfo im FormCreate und füge das dann einer TImageList (
Handle) mit SmallImages auf True an.
SystemIcons := SHGetFileInfo('', 0, Info, SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
Im GetImageIndex Event lade ich Icons einmalig
SHGetFileInfo(PChar(FileName), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), SHGFI_USEFILEATTRIBUTES or SHGFI_ICON or SHGFI_TYPENAME);
Icons für Dateien werden anzeigt. Für Verzeichnisse aber nicht.
Wie wendet man SHGetFileInfo richtig und performant an?