![]() |
TIcon freigeben mit Free oder DestroyIcon
Hallo,
ich muß in meinem Projekt das Icon von diversen EXE-Dateien auslesen. Dafür habe ich mit Google diesen ![]() Da dieses Originalbeispiel bei mir leider nicht läuft, vermutlich weil das Icon mit DestroyIcon zu zeitig freigegeben wird, habe ich zum Testen den Code auf meine Bedürfnisse umgeschrieben.
Delphi-Quellcode:
Der Code funktioniert auch wie gewünscht. Nur bin ich mir nicht im Klaren, wie das Icon wieder freizugeben ist.
function LoadIconFromExeFile(fn: String; icon: TIcon): Boolean;
var FileInfo : SHFileInfo; begin result := SHGetFileInfo(PChar(fn), 0, FileInfo, SizeOf(FileInfo), SHGFI_ICON) <> 0; if result then icon.Handle := FileInfo.hIcon; end; procedure TForm1.Button3Click(Sender: TObject); var idx : Integer; icon : TIcon; begin with OpenDialog1 do if Execute then begin icon := TIcon.Create; try if LoadIconFromExeFile(Filename, icon) then begin idx := ImageList1.AddIcon(icon); if idx > -1 then ImageList1.GetIcon(idx, Image1.Picture.Icon); // für Testzwecke Icon anzeigen end; finally icon.Free; // oder // DestroyIcon(icon.Handle); ???? end; end; end; In der Hilfe steht: Zitat:
Wie mache ich es richtig? Gruß Klaus. |
Re: TIcon freigeben mit Free oder DestroyIcon
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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