Ich habe in einem meiner Programm ein Singleton, das für alle Forms etc. eine Liste mit den System Images enthält. Diese Imageliste weise ich dann den entsprechenden Komponenten zu.
Der Code ist eigentlich recht ähnlich zu Deinem, aber evtl. sind ja die zusätzlichen Attribute für die ImageListe interessant:
Delphi-Quellcode:
FImageList := TImageList.Create(nil);
FImageList.Masked := False;
try
SysIcons := SHGetFileInfo(PChar(Copy(ParamStr(0), 1, 3)), 0, SHFileInfo,
SizeOf(SHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON or
SHGFI_ICON);
finally
DestroyIcon(SHFileInfo.hIcon);
end;
FImageList.Handle := SysIcons;
FImageList.ShareImages := True;
FImageList.DrawingStyle := dsTransparent;
Viele Grüße