![]() |
Icon mit bestimmtem Index aus Datei lesen...
Ich benutze die folgende Funktion um Dateiicons in eine in eine Systemimagelist zu laden und anschkießend den Index für die Anzeige in einer Treeview zu bekommen. Ich würde jetzt gern bei einigen Dateien den Iconindex mitgeben, d.h. es soll dann z.B. das 3. Icon geladen werden... wie mache ich das am besten?
Delphi-Quellcode:
function GetShellIcon(FileName: string; NoFile: boolean): integer;
var SHFileInfo: TSHFileInfo; Tmp: string; Txt: textfile; begin Result := 0; //Falls ein Laufwerksbuchstabe übergeben wurde... if Length(FileName) = 1 then FileName := FileName + ':'; //Laufwerke sollten mit \ enden... if (Length(FileName) = 2) and (copy(FileName, length(FileName), 1) = ':') and (copy(FileName, length(FileName), 1) <> '\') then FileName := FileName + '\'; // CoInitialize has to be called before SHGetFileInfo (done by Delphi) FillChar(SHFileInfo, SizeOf(TSHFileInfo), 0); //Dateiino lesen... if NoFile = False then ShGetFileInfo(PChar(FileName), 0, SHFileInfo, SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON or SHGFI_ICON) else ShGetFileInfo(PChar(FileName), FILE_ATTRIBUTE_ARCHIVE, SHFileInfo, SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON or SHGFI_ICON or SHGFI_USEFILEATTRIBUTES); try //IconIndex liefern... Result := SHFileInfo.iIcon; finally // icon handle freigeben DestroyIcon(SHFileInfo.hIcon); end; end; |
Re: Icon mit bestimmtem Index aus Datei lesen...
Guck dir mal ExtractIcon aus der ShellAPI Unit an.
Florian |
Re: Icon mit bestimmtem Index aus Datei lesen...
Naja... das hilft mir in dem Fall nicht wirklich weiter, da ich das Icon in der ShellIcon-Liste haben muss..
Ich hab mir jetzt geholfen, indem ich einfach temporär (im Tempordner) eine Verknüpfung anlege und diese dann an "GetShellIcon" übergebe. Anschließend lösche ich meine Temporäre Datei wieder ;) ... So habe ich auf jeden Fall das richtige Symbol in der Liste :spin2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 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