![]() |
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
Jo, danke erst mal.
Aber die letzte Zeile will Delphi irgendwie nich annehmen... |
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
leider, leider, leider....
funzt bei mir immer noch nich! :cry: Was hast Du gemacht, damit's geht ??? Hab die letzt Zeile einfach weggelassen und PaintBox1 mit Image1 ersetzt. Programm läuft auch, aber das Image1 ist einfach nur weiß... |
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
die kannste rausnehmen :) hab ich auch gemacht. es könnte dann nur sein, dass du, wenn du 1000000 Icons ausgelesen hast, der Speicher voll is, weil du die Imagelist nicht mehr leermachst [zur letzten Zeile]
du musst den Code eben so weit abkürzen, dass er sich nurnoch um das Icon kümmert. Ich machs mal schnell... |
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
Warum läufts bei mir nich?
:roll: :cry: :? :( :coder2: ????? |
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
Jau, so gehts auch:
Delphi-Quellcode:
der liefert dir dann ein gültiges Icon zurück.
function FileIcon(Name: String):ticon;
var FileInfo: TSHFileInfo; ImageListHandle: THandle; aIcon: TIcon; begin FillChar(FileInfo, SizeOf(FileInfo), #0); ImageListHandle := SHGetFileInfo( PChar(Name), 0, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_LARGEICON ); try aIcon := TIcon.Create; try aIcon.Handle := FileInfo.hIcon; aIcon.Transparent := True; except end; except end; result:=aicon; end; |
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
warte mal....
Hab grad als Parameter einfach '' übergeben, also:
Delphi-Quellcode:
Und es wird das Windows-Ordner Symbol angezeigt !!!
DrawFile('');
? Muss also an der *.lnk Datei liegen ? |
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
Der neue Code funzt auch nur, wenn ich einen Ordner also
Delphi-Quellcode:
übergebe.
Image1.Picture.Icon:=FileIcon('');
Aber nicht bei meiner *.lnk Datei :cry: Geht's denn bei dir mit einer *.lnk Verknüpfung ? |
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
lnks kann er bei mir schon auslesen. mach mal nicht image1.picture.icon sondern image1.canvas.draw(fileicon(filename));
hier mal mein source:
Delphi-Quellcode:
bei mir stellt er das ausgelesene Icon als Anwendungssymbol ein. Klappt prima.
function FileIcon(Name: String):ticon;
var FileInfo: TSHFileInfo; ImageListHandle: THandle; aIcon: TIcon; begin FillChar(FileInfo, SizeOf(FileInfo), #0); ImageListHandle := SHGetFileInfo( PChar(Name), 0, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_LARGEICON ); try aIcon := TIcon.Create; try aIcon.Handle := FileInfo.hIcon; aIcon.Transparent := True; except end; except end; result:=aicon; end; procedure TForm1.Button1Click(Sender: TObject); begin if not opendialog1.Execute then exit; Application.Icon:=fileicon(opendialog1.FileName); end; [edit] sch... eigentlich müsste ich ja eine dialektische Erörterung als Deutsch-Hausaufgabe schreiben... aber Mammi wird schon nicht schauen. |
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
Bei
Delphi-Quellcode:
kommt:
image1.canvas.draw(fileicon(.......));
Zitat:
|
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
Hmm... Deutsch...
Also ich hab Herbstferien!!! Übrigens kannst du deinen Code noch vereinfachen:
Delphi-Quellcode:
Aber vielen vielen Dank für deine Hilfe, werd's schon hinkriegen! :coder2:
procedure TForm1.Button1Click(Sender: TObject);
begin if opendialog1.Execute then Application.Icon:=fileicon(opendialog1.FileName); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 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