@littleDave: Es gibt oft nicht nur einen einzigen Weg.
Ich mache es jedoch auch immer mit ShGetFileInfo:
Delphi-Quellcode:
Icon: TIcon;
FileInfo: SHFileInfo;
// ...
SHGetFileInfo(PChar(ExtractFileExt('Pfad zur Datei')), FILE_ATTRIBUTE_NORMAL, FileInfo,
SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON or
SHGFI_ICON or SHGFI_USEFILEATTRIBUTES);
Icon.Handle := FileInfo.hIcon;
// ImageList ist ListView.SmallIcons zugewiesen
ListItem.ImageIndex := ImageList.AddIcon(Icon);
// ...
Das ist nur aufs Kürzeste zusammengefasst. Speicher freigeben etc. nicht vergessen.
Grüße, Matze