Das FREE-Problem habe ich inzwischen korrigiert, die F-Imagelisten werden jetzt nurnoch := NIL gesetzt.
Zum erzeugen:
Sähe dann quasi so aus:
1. Gleichsetzen der Handles
2. ShareImages auf true stellen
3. mit der Small- oder LargeImages-ImageList des ListViews verknüpfen
Funktioniert scheinbar nicht! Ich bekomme eine Zugriffsverletzung beim Übergeben der Handles (if (HIs <> 0) then FSmallShellImages.Handle := HIs)
Aktueller Code:
Delphi-Quellcode:
if FUseSmallImages then
if not FSmallShellIconsLoaded then begin
ZeroMemory(@FileInfo, SizeOf(TSHFileinfo));
HIs := HImageList(ShGetFileInfo('', FILE_ATTRIBUTE_NORMAL, FileInfo, SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON));
if (HIs <> 0) then FSmallShellImages.Handle := HIs;
FSmallShellImages.ShareImages := True;
SmallImages := FSmallShellImages;
FSmallShellIconsLoaded := True;
end;
Geht's ohne ".Create" oder muss ich die ImagLists vorher doch erzeugen?