![]() |
SHGetFileInfo
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:
Delphi-Quellcode:
Problem ist das sobald Code B aufgerufen wird irgendwie Speicher für jedes Icon belegt wird.
ImageList_Draw(fImageList, Self.fIconIndex, Canvas.Handle, Rect.Left+6, imageTop,ILD_TRANSPARENT);
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? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz