AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Icon mit bestimmtem Index aus Datei lesen...
Thema durchsuchen
Ansicht
Themen-Optionen

Icon mit bestimmtem Index aus Datei lesen...

Ein Thema von FriFra · begonnen am 18. Nov 2006 · letzter Beitrag vom 18. Nov 2006
Antwort Antwort
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#1

Icon mit bestimmtem Index aus Datei lesen...

  Alt 18. Nov 2006, 01:08
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;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Icon mit bestimmtem Index aus Datei lesen...

  Alt 18. Nov 2006, 15:54
Guck dir mal ExtractIcon aus der ShellAPI Unit an.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Icon mit bestimmtem Index aus Datei lesen...

  Alt 18. Nov 2006, 18:17
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
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.
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