AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mit Firemonkey Bild aus Ressource laden
Thema durchsuchen
Ansicht
Themen-Optionen

Mit Firemonkey Bild aus Ressource laden

Ein Thema von Haus117 · begonnen am 16. Jan 2014 · letzter Beitrag vom 20. Jan 2014
Antwort Antwort
Seite 1 von 3  1 23      
Haus117

Registriert seit: 16. Jan 2014
6 Beiträge
 
#1

Mit Firemonkey Bild aus Ressource laden

  Alt 16. Jan 2014, 21:25
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.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Mit Firemonkey Bild aus Ressource laden

  Alt 17. Jan 2014, 00:54
Fehler in der RC Datei?

Ich mache es so...
GlobalScale ist der Bildschirmfaktor Retina usw.

Delphi-Quellcode:
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;
Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Mit Firemonkey Bild aus Ressource laden

  Alt 17. Jan 2014, 07:55
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;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Haus117

Registriert seit: 16. Jan 2014
6 Beiträge
 
#4

AW: Mit Firemonkey Bild aus Ressource laden

  Alt 17. Jan 2014, 12:18
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...
Miniaturansicht angehängter Grafiken
unbenannt.png  
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Mit Firemonkey Bild aus Ressource laden

  Alt 17. Jan 2014, 12:53
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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Mit Firemonkey Bild aus Ressource laden

  Alt 17. Jan 2014, 12:58
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;
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Mit Firemonkey Bild aus Ressource laden

  Alt 17. Jan 2014, 13:22
... und ein 'end' vor dem rot unterstrichendem 'else' würde einen weiteren Fehler beseitigen.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Mit Firemonkey Bild aus Ressource laden

  Alt 17. Jan 2014, 13:27
... und ein 'end' vor dem rot unterstrichendem 'else' würde einen weiteren Fehler beseitigen.
Ich war's nicht...
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Mit Firemonkey Bild aus Ressource laden

  Alt 17. Jan 2014, 13:41
Wenn du dir CnWizards installierst, dann würde dir so ein Fehler sofort auffallen. (Achte mal auf die Linien zwischen dem begin und end )
cnpack_demo.png
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Haus117

Registriert seit: 16. Jan 2014
6 Beiträge
 
#10

AW: Mit Firemonkey Bild aus Ressource laden

  Alt 17. Jan 2014, 16:30
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 Procedure Form1.LoadBild(FImage:TImage;ResName:String); scheint es noch nicht zu sein.

wenn ich die Funktion einfüge fehlt bestimmt noch ne Bibliothek oder Uni oder sowas? denn er unterstreicht mir wieder folgendes:
Miniaturansicht angehängter Grafiken
unbenannt.png  

Geändert von Haus117 (17. Jan 2014 um 16:41 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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