Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Datei Icons herausfinden (https://www.delphipraxis.net/102609-datei-icons-herausfinden.html)

gsh 31. Okt 2007 22:39


Datei Icons herausfinden
 
Hi Leute

Ich würd gern eine Virtual String Tree als anzeigeplatz für meine Dateien verwenden. Aber ich möchte des auf der linken seite des symbol vom explorer benutzt wird. Also genauer gesagt möchte ich des symbol auf des die dateierweiterung regestriert ist.
Also wenn ich z.b. eine .zip datei anzeigen möchte dann möchte ich des WinZip symbol haben (wenn winzip installiert ist). Aber wenn jetzt z.b. winrar installiert ist dann will ich des rar symbol für die .zip datei haben. So wie es halt im explorer aussieht

Daführ gibt es doch sicher ein API oder?

so in der richtung: procedure GibMirSystemIcons(DateiErweiterung : PChar) : TIcon;

mkinzler 31. Okt 2007 22:44

Re: Datei Icons herausfinden
 
Die Icons stehen in der Registry bei den Dateitypen.

gsh 31. Okt 2007 22:59

Re: Datei Icons herausfinden
 
Wo genau?
Bei z.b. "HKEY_CLASSES_ROOT\.rar" ist der Standart wert auf "WinRAR" sonst nichts

mkinzler 31. Okt 2007 23:07

Re: Datei Icons herausfinden
 
Und bei RarFile?

Garfield 1. Nov 2007 06:15

Re: Datei Icons herausfinden
 
Ich habe es so ähnlich wie dort gemacht.-> http://www.stoer.de/tipps.html#fileicon

Luckie 1. Nov 2007 08:18

Re: Datei Icons herausfinden
 
MSDN-Library durchsuchenSHGetFileInfo ist der richtige Weg.

gsh 1. Nov 2007 11:48

Re: Datei Icons herausfinden
 
Ah ok danke des dürfte des sein was ich gesucht habe.
Eine Frage noch: Geht des auch für Ordner?
Also wenn ich da einen Ordner angib bekomme ich dann des symbol davon weil ordner können ja auch verschiedene Symbole haben

sakura 1. Nov 2007 11:52

Re: Datei Icons herausfinden
 
Zitat:

Zitat von gsh
Ah ok danke des dürfte des sein was ich gesucht habe.
Eine Frage noch: Geht des auch für Ordner?

Ordner sind auch "nur" Dateien, ergo, SHGetFileInfo funktioniert auch für Ordner ;)

...:cat:...

gsh 1. Nov 2007 11:56

Re: Datei Icons herausfinden
 
Zitat:

Zitat von sakura
Zitat:

Zitat von gsh
Ah ok danke des dürfte des sein was ich gesucht habe.
Eine Frage noch: Geht des auch für Ordner?

Ordner sind auch "nur" Dateien, ergo, SHGetFileInfo funktioniert auch für Ordner ;)

perfekt
danke an alle

gsh 1. Nov 2007 20:13

Re: Datei Icons herausfinden
 
Hi ich bins nochmal :mrgreen:

ich benutze jetz folgende funktion:
Delphi-Quellcode:
function GetFileIcon(const FileName: string; const Icon: TIcon; const FileMustExist: Boolean): Boolean;
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
    Icon.ReleaseHandle;
    Icon.Handle := FI.hIcon;
    Result := True;
  end
  else Result := False;
end;
So diese Funktion funktioniert schon ganz gut. Nur hab ich noch zwei Probleme damit.
Also wenn ich FileMustExist auf true setzte dann bekomme ich bei einer .Ink datei (verknüpfung) überhaupt keinen Icon.
Aber wenn ich FileMustExist auf false setzte dann bringt er bei einem Ordner kein richtiges Icon mehr.

Habt ihr eine Ahnung warum?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz