Thema: Delphi SHGetFileInfo

Einzelnen Beitrag anzeigen

Billi Berserker
(Gast)

n/a Beiträge
 
#1

SHGetFileInfo

  Alt 31. Aug 2004, 17:38
Ich hab da ein kleines Problem mit der SHGetFileInfo function.

Ich erstelle mir eine himagelist der shell icons.
A:
Delphi-Quellcode:
    fImageList := SHGetFileInfo(nil,0, FileInfo, SizeOf(FileInfo),
                        SHGFI_SYSICONINDEX or SHGFI_SMALLICON);

Für jedes icon was ich brauche hohle ich mir den Index des icons in der image liste
B:
Delphi-Quellcode:
        SHGetFileInfo(PChar(fItemIcon),0, FileInfo, SizeOf(FileInfo),
            SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
        fIconIndex := FileInfo.iIcon;

Gezeichnett wird das Icon dann auch über einen API Befehl :
C:
ImageList_Draw(fImageList, Self.fIconIndex, Canvas.Handle, Rect.Left+6, imageTop,ILD_TRANSPARENT); Problem ist das sobald Code B aufgerufen wird irgendwie Speicher für jedes Icon belegt wird.
Bei mehreren Icons kommen da schon mal 4 MB zusammen obwohl ich ja eigentlich nur den Index für die Imageliste ziehe und nicht das komplette icon. Muß ich noch irgendetwas freigeben? (destroyicon(FileInfo.hicon) bringt nichts da hicon = nil)
Oder wird mit dem Aufruf von Code B: das Icon in die image liste geladen(obwohl die imageliste ja nicht mit angegeben ist) so das Code C überhaupt funktioniert?
  Mit Zitat antworten Zitat