![]() |
Mit Firemonkey Bild aus Ressource laden
Hey Leute,
ich benutze Delphi Starter XE5 und würde gerne ein Bild der exe direkt hinzufügen. Daher habe ich schon die .rc-Datei erstellt und in eine .res-Datei umgewandelt. MIt einer normalen VLC-FOrmular-Anwendung bekomme ich es mit folgender Zeile auch super hin. Image1.Picture.Bitmap.LoadFromResourceName(hinstan ce, 'bild1'); Nur in Firemonkey-Desktopanwendungen gibt es den Befehl nicht. Firemonkey möchte ich aber nutzen, da ich die Floatanimation davon nutze um Panels sanft ein und auszublenden. Habe daher folgendes probiert: procedure TForm1.Button1Click(Sender: TObject); var InStream: TResourceStream; begin InStream := TResourceStream.Create(HInstance, 'Bild1', RT_RCDATA); try Image1.Bitmap.LoadFromStream(InStream); finally InStream.Free; end; end; da sagt er mit aber immer, das er die Ressourcendatei nicht finden kann. Vielleicht kann mir ja einer von euch helfen. |
AW: Mit Firemonkey Bild aus Ressource laden
Fehler in der RC Datei?
Ich mache es so... GlobalScale ist der Bildschirmfaktor Retina usw.
Delphi-Quellcode:
Mavarik
Procedure TMyForm.LoadBild(FImage:TImage;ResName:String);
var RS : TResourceStream; begin FImage.MultiResBitmap.Clear; if GlobalScale < 2.0 then begin RS := TResourceStream.Create(HInstance,ResName+'Low',RT_RCDATA); FImage.MultiResBitmap.LoadItemFromStream(RS,1.0); FreeAndNil(RS); end else begin RS := TResourceStream.Create(HInstance,ResName+'High',RT_RCDATA); FImage.MultiResBitmap.LoadItemFromStream(RS,2.0); FreeAndNil(RS); end; end; |
AW: Mit Firemonkey Bild aus Ressource laden
Wenn man keinen doppelten Source mag:
Delphi-Quellcode:
Procedure TMyForm.LoadBild(FImage:TImage;ResName:String);
var RS : TResourceStream; Factor : single; Resolution : string; begin FImage.MultiResBitmap.Clear; if GlobalScale < 2.0 then begin Factor := 1.0; Resolution := 'Low'; else begin Factor := 2.0; Resolution := 'High'; end; RS := TResourceStream.Create(HInstance,ResName+Resolution,RT_RCDATA); FImage.MultiResBitmap.LoadItemFromStream(RS, Factor); FreeAndNil(RS); end; |
AW: Mit Firemonkey Bild aus Ressource laden
Liste der Anhänge anzeigen (Anzahl: 1)
Im Procedurennamen hab ich mal den Punkt entfernt weil er mir das sonst als rot anzeigt. Oder hatte der Punkt nen bestimmten Grund?
DIe rotmarkierten Sachen zeigt er mir als Fehler an. Was mache ich falsch? Und einfach FImage durch Image1 ersetzen funktioniert auch nicht... |
AW: Mit Firemonkey Bild aus Ressource laden
Die Prozedur war als Methode eines TMyForm-Objekts deklariert. Wenn Dein Formularobjekt anders heißt, musst Du das anpassen und im Objekt ebenfalls deklarieren. GlobalScale ist eine gobale Variable, die mußt Du ebenfalls vorher deklarieren und füllen.
|
AW: Mit Firemonkey Bild aus Ressource laden
Bzw.
Delphi-Quellcode:
Function GlobalScale:Single;
var ScreenSrv: IFMXScreenService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenSrv)) then Result := ScreenSrv.GetScreenScale else Result:= 1.0; end; |
AW: Mit Firemonkey Bild aus Ressource laden
... und ein 'end' vor dem rot unterstrichendem 'else' würde einen weiteren Fehler beseitigen.
|
AW: Mit Firemonkey Bild aus Ressource laden
Zitat:
|
AW: Mit Firemonkey Bild aus Ressource laden
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn du dir
![]()
Delphi-Quellcode:
und
begin
Delphi-Quellcode:
)
end
Anhang 40553 |
AW: Mit Firemonkey Bild aus Ressource laden
Liste der Anhänge anzeigen (Anzahl: 1)
OKay, das mit dem end hätte ich sehen müssen^^ aber der Wizard ist ne coole Idee.
also mein Formular-Objekt ist zB. mein Button oder der Name meiner Form? denn
Delphi-Quellcode:
scheint es noch nicht zu sein.
Procedure Form1.LoadBild(FImage:TImage;ResName:String);
wenn ich die Funktion einfüge fehlt bestimmt noch ne Bibliothek oder Uni oder sowas? denn er unterstreicht mir wieder folgendes: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 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