Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Icon anhand des Dateitypen ermitteln (https://www.delphipraxis.net/130392-icon-anhand-des-dateitypen-ermitteln.html)

MisterNiceGuy 7. Mär 2009 16:11


Icon anhand des Dateitypen ermitteln
 
Hallo ich habe einen FTP-Client geschrieben und möchte nun in meinem Listview die Iconsymbole der Dateien auf dem FTP angezeigt bekommen. Da die Dateien nicht lokal liegen kann ich GetShellIcon nicht benutzen. Ich brauche also einen Weg um per Dateityp einen Zeiger auf das passende Item zu erhalten. Sollte in etwa so aussehen:

geticon(Extension:String):HIcon;

Vielen Dank für eure Hilfe :)

jaenicke 7. Mär 2009 16:21

Re: Icon anhand des Dateitypen ermitteln
 
Schau mal hier:
http://www.delphipraxis.net/internal...=773699#773699

MisterNiceGuy 7. Mär 2009 16:50

Re: Icon anhand des Dateitypen ermitteln
 
Das ging schon zu 90% in die Richtige Richtung :) Ich hab's ein bisschen für meine Bedürfnisse modifiziert, danke!

Delphi-Quellcode:
function GetFileIcon(const FileName: string; const FileMustExist: Boolean): TIcon;
var
  FI: TSHFileInfo;
  Attributes: DWORD;
  Flags: Word;
begin
  if FileMustExist then
  begin
    Attributes := 0;
    Flags := SHGFI_ICON or SHGFI_LARGEICON;
  end
  else
  begin
    Attributes := FILE_ATTRIBUTE_NORMAL;
    Flags := SHGFI_USEFILEATTRIBUTES or SHGFI_ICON or SHGFI_LARGEICON;
  end;

  if SHGetFileInfo(PChar(FileName), Attributes, FI, SizeOf(FI), Flags) <> 0 then
  begin
    result := TIcon.Create;
    Result.Handle := FI.hIcon;
  end;
end;

DeddyH 7. Mär 2009 16:53

Re: Icon anhand des Dateitypen ermitteln
 
Dann übergib aber besser die Icon-Instanz als Parameter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:42 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