Icons nicht existierender Dateien holen
Hallo!
Entsprechend diesem Beispiel kann man sich ja recht einfach die Shellicons holen und darstellen. Jetzt habe ich aber den Fall, dass ich den Inhalt einer ZIP-Datei per ZipForge auswerte. Heißt, ich habe nur die Dateinamen inkl. Extension, welche aber nicht "physisch" auf einem Datenträger liegen. Kann man sich auf ähnliche Weise auch die Icons holen, wenn man nur den Dateinamen hat? Und ich möchte jetzt nicht den "schmutzigen Trick" verwenden, irgendwo Dummy-Dateien anzulegen. Ich bräuchte nur nen kleinen Schubs in die richtige Richtung. Grüße Cody |
AW: Icons nicht existierender Dateien holen
Hi
Ich meine...bei den Attributen musst du noch SHGFI_USEFILEATTRIBUTES angeben. Frank |
AW: Icons nicht existierender Dateien holen
Vielleicht hilft dir das weiter:
https://entwickler-ecke.de/topic_Ico...n_55744,0.html |
AW: Icons nicht existierender Dateien holen
Zitat:
Delphi-Quellcode:
function GetFileInfo(AExt: string; var AInfo: TSHFileInfo): Boolean;
begin ZeroMemory(@AInfo, SizeOf(TSHFileInfo)); Result := ( SHGetFileInfo( PChar(AExt), FILE_ATTRIBUTE_NORMAL, AInfo, SizeOf(TSHFileInfo), SHGFI_ICON + SHGFI_TYPENAME + SHGFI_USEFILEATTRIBUTES + SHGFI_LARGEICON ) <> 0 ); end; procedure TForm1.Button2Click(Sender: TObject); var I: Integer; LExt, LStr: string; LIcon: TIcon; LInfo: TSHFileInfo; LItem: TListItem; LList: TStringList; begin LList := TStringList.Create; try LList.Add('test.txt'); LList.Add('test.exe'); LList.Add('test.xls'); ImageList1.Clear; ListView1.Clear; for LStr in LList do begin LExt := ExtractFileExt(LStr); if GetFileInfo(LExt, LInfo) then begin I := -1; LIcon := TIcon.Create; try LIcon.Handle := LInfo.hIcon; LIcon.Transparent := true; I := ImageList1.AddIcon(LIcon); finally LIcon.Free; end; LItem := ListView1.Items.Add; LItem.Caption := LStr; LItem.ImageIndex := I; end; end; finally FreeAndNil(LList); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 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