![]() |
Firemonkey TIcon
Weiß jemand ob es möglich ist ein TIcon in Firemonkey zu benutzen? TIcon ist Bestandteil des VLC aber es muss doch etwas vergleichbares geben?
Vielen Dank. |
AW: Firemonkey TIcon
Mein eigentliches Problem ist, dass Ich folgenden Code nicht ausführen kann weil TIcon nicht verfügbar ist und Ich nicht weiß wie Ich nun vorgehen soll.
Mein Etappen-Ziel ist es das Icon einer Datei auszulesen. Das ganze soll nicht nur bei Exe Dateien klappen sondern auch bei Files das entsprechende Icon ausgeben.
Delphi-Quellcode:
Das hier liefert mir bei Exe Files ein Handle zurück (Jedenfalls nicht 0):
var
MyIcon:TIcon; icoHandle: HIcon; begin MyIcon:=TIcon.Create; try icoHandle := ExtractIcon(application.handle,'c:\windows\explorer.exe', 0) ; MyIcon.Handle:=icoHandle; Image1.Picture.Icon:=MyIcon; finally MyIcon.free; end; end;
Delphi-Quellcode:
In der Hilfe habe ich noch etwas vielversprechenderes gelesen:
procedure TBarButton.GetIcon;
var icoHandle : HIcon; begin icoHandle := ExtractIcon(HInstance, PChar(FShortCut), 0); end; Zitat:
Jetzt weiß Ich leider nicht so wirklich weiter... hat jemand einen Ansatz? |
AW: Firemonkey TIcon
Zitat:
Solange diese VCL-Komponente nicht auf der FM-Form liegt, sollte es kaum keine Probleme geben. Funktioniert dieser Code in einem VCL-Programm? Laß mal das Icon.Free weg. (falls es geht, kümmern wir uns um das Speicherleck) |
AW: Firemonkey TIcon
Ach Danke himitsu! Ich habe wirklich gedacht, dass das VLC in FM tabu ist :D
Ja der Code funktioniert jetzt leicht abgewandelt bei mir, vielleicht wars gestern einfach zu spät! |
AW: Firemonkey TIcon
Hiermit lässt sich ein Icon auslesen und in ein TImage speichern:
Delphi-Quellcode:
:) Zur Laufzeit bekomme Ich dann folgenden recht netten Fehler:
// momentane uses
uses FMX.Controls, System.Classes, Winapi.ShellApi, WinApi.Windows, Vcl.ExtCtrls; procedure TBarButton.GetIcon; var InfoData : SHFILEINFO; begin SHGetFileInfo(PChar(FShortCut), 0, InfoData, SizeOf(InfoData), SHGFI_ICON); Img := TImage.Create(Self); Img.Picture.Icon.Handle := InfoData.hIcon; end; Zitat:
Das lässt sich einfach ergründen: Image auf der Form ist (Weil FM-HD APP) = FMX.Objects.TImage. Image aus der anderen Unit aber Vcl.ExtCtrls. Leider muss ich das TImage aus Vcl.ExtCtrls nehmen weil das FMX Image keine Zitat:
Idealer wäre jetzt das Vcl.ExtCtrls.TImage so zu Konvertieren, das ein Bitmap oder sonstwas entsteht welches Ich FMX.Objects.TImage zuweise. Speicherlöcher habe Ich keine momentan, programmiere auch immer mit ReportMemoryLeaksOnShutdown; damit Ichs schnell merke. Hat jemand eine Idee wie Ich mein Bild elegant übergebe? Ich habe schon einiges versucht... |
AW: Firemonkey TIcon
Das Problem ist nur, dass dieser Code nicht mehr auf andere Plattformen portierbar ist.
|
AW: Firemonkey TIcon
Ja, Multiplatform, das habe Ich mir schon lange abgeschminkt, hier gehts nurnoch um die Animationen.
|
AW: Firemonkey TIcon
Ich speichere das Bild auf der Festplatte und lade es dann von dort wieder. Wenn Ich mit dem Programm fertig bin werde Ich es auch hier veröffentlichen damit andere sich das anschauen können.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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