![]() |
Icons von Dateien anzeigen
Delphi-Quellcode:
Habe so eine Routine nur das Problem das es nicht ganz so funktioniert wie ich das möchte da die Datei inm Datenbankblobfeld liegt. Wie bekomme ich dennoch das richtige Icon angezeigt ??
with qry do
Begin IB_Connection := frmcoDMC.co_Admin; SQL.Text := 'SELECT ABL_ALLGEMEIN.ID0_0,ABL_ALLGEMEIN.ID0_1,ABL_ALLGEMEIN.DOKUID0, ABL_ALLGEMEIN.DOKUID1, '+ 'ABL_ALLGEMEIN.TYP, ABL_ALLGEMEIN.BESCHREIBUNG, ABL_ALLGEMEIN.WERT, ABL_ALLGEMEIN.OBJEKTTEXT '+ 'FROM ABL_ALLGEMEIN '+ 'WHERE ((ABL_ALLGEMEIN.DOKUID0 = :P_1) and (ABL_ALLGEMEIN.DOKUID1 = :P_2)) '; ParamByName('P_1').AsString := V_ID0; ParamByName('P_2').AsString := V_ID1; Open; while not eof = True do Begin li := Listview1.Items.Add; //Beschreibung li.caption := fields[7].AsString; //ID0 li.SubItems.Add(fields[0].AsString); //ID1 li.SubItems.Add(fields[1].AsString); //Tabelle li.SubItems.Add(fields[2].AsString); //DokuId0 li.SubItems.Add(fields[3].AsString); //DokuId1 LI.SubItems.Add(fields[4].AsString); LI.SubItems.Add(fields[5].AsString); LI.SubItems.Add(fields[6].AsString); ZeroMemory(@fi,sizeof(fi)); SHGetFileInfo(pchar(fields[7].AsString),0,fi,sizeof(fi), SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_TYPENAME); li.ImageIndex := fi.iIcon; listviewpanel.Visible := true; Next; end; Close; Free; end; |
Re: Icons von Dateien anzeigen
Zitat:
|
Re: Icons von Dateien anzeigen
Also die Routine soll mir die Dateiicons von Windows anzeigen was auch funktioniert wenn ich die Routine benutze um auf der Festplatte dateiicons auszulesen.
Wenn ich das so mache bekomme ich nur die Blaue Hand als Icon egal was ich für eine Dateiendung habe. |
Re: Icons von Dateien anzeigen
Was steht den in fields[7] drin?
|
Re: Icons von Dateien anzeigen
Delphi-Quellcode:
ImageIndex und iIcon sind villeicht vom selben Typ, aber dann muss ich auch fragen, was für eine ImageList du am Listview eingebunden hast. Wenn es eine normale ist solltest du evtl. vorher noch das Icon da mit rein tun. Ist es eine abgeleitete, die auf die System-Imagelist zugreift interessiert wirklich was in fields[7] so steht. :stupid:
SHGetFileInfo(pchar(fields[7].AsString),0,fi,sizeof(fi),
SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_TYPENAME); li.ImageIndex := fi.iIcon; // << Hier liegt der Hund begraben |
Re: Icons von Dateien anzeigen
Wenn die Datei, die du SHGetFileInfo() übergibts nicht auf deiner Festplatte liegt, musst du hinten noch SHGFI_USEFILEATTRIBUTES anhängen. Also, um ein Icon für eine MP3 zu bekommen geht zum Beispiel
Delphi-Quellcode:
SHGetFileInfo('dummy.mp3', 0, SFI, SizeOf(TSHFileInfo), SHGFI_SYSIconIndex or SHGFI_USEFILEATTRIBUTES);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 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