AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

JPGs aus einer Resourcendatei laden

Ein Thema von fiscch4 · begonnen am 23. Nov 2010 · letzter Beitrag vom 25. Nov 2010
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.233 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: JPGs aus einer Resourcendatei laden

  Alt 24. Nov 2010, 15:19
Ändere deinen Code mal nach:

 Image1.Picture.LoadFromResourceID(HInstance, 1); Deine Image-Instanz hat ja noch kein Bild geladen. So ist u.U. das Bitmap-Property auch nil.
Ebenfalls solltest du eine JPEG (wie Assarbad angemerkt hat) direkt ins Image-Picture-Laden und nicht erst versuchen damit ein Bitmap zu beauftragen (was damit ja nix anfangen kann).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
fiscch4

Registriert seit: 23. Nov 2010
8 Beiträge
 
Delphi 7 Personal
 
#2

AW: JPGs aus einer Resourcendatei laden

  Alt 24. Nov 2010, 15:31
wenn ich den code änder kommt undefinierter Bezeichner LoadFormResourceID

funktioniert also leider nicht

ich kann mich leider erst morgen wieder melden
aber schonmal vielen vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: JPGs aus einer Resourcendatei laden

  Alt 24. Nov 2010, 15:34
sorry , ich hatte Dich in die falsche Ecke geschickt
Delphi-Quellcode:
procedure LoadPictureFromJpgResource(picture : TPicture;const AResName: string);
var
   rs: TResourceStream;
   jpg: TJPEGImage;
begin
   rs := TResourceStream.Create(HInstance,AResName,RT_RCDATA);
   jpg := TJPEGImage.Create;
   try
      jpg.LoadFromStream(rs);
      picture.Assign(jpg);
   finally
      jpg.Free;
      rs.Free;
   end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin

  LoadPictureFromJpgResource(Image1.Picture,'TEST2');
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
fiscch4

Registriert seit: 23. Nov 2010
8 Beiträge
 
Delphi 7 Personal
 
#4

AW: JPGs aus einer Resourcendatei laden

  Alt 24. Nov 2010, 23:57
Hallo,

ich weis nicht ob ich mich zu blöd anstelle aber wenn ich die Procedure oben registrieren will bringt einen fehler von wegen [Fehler] test.pas(40): Ungenügende Forward- oder External-Deklaration: 'TForm1.LoadPictureFromJpgResource'

dann habe ich es versucht das was in der Procedur normal abläuft in oncreat zu packen
aber dann sagt er nur Resource B1(RC sieht so aus:
B1 RT_RCDATA "test.jpg"
B2 RT_RCDATA "images.jpg"

ist umgewandelt und eigebunden) nicht.

muss ich sonst noch irgendwas beachten ich gehe mal davon aus das ich den Code richtig verstanden habe und AResName= in meinem Fall B1 ist
und picture in meinem Fall Image1.Picture

ich hoffe ich bringe das noch bis nächsten Mittwoch hin
soll ein Adventskalender werden mit Bildern ...

Also Vielen Dank
und Gute Nacht
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: JPGs aus einer Resourcendatei laden

  Alt 25. Nov 2010, 00:13
Ist die Routine auch eine Methode deines Formulars?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: JPGs aus einer Resourcendatei laden

  Alt 25. Nov 2010, 07:35
Du hast wahrscheinlich die Deklaration von LoadPictureFromJpgResource
so vorgenommen
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    Procedure LoadPictureFromJpgResource(....
  end;
Damit wäre es eine Methode der Klasse TForm1 und muß unterhalb von implementation auch so
Procedure TForm1.LoadPictureFromJpgResource(...
eigefügt werden.

Sinvoller ist aber, wenn Du es nicht gleich in eine UtilUnit packen willst
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

Procedure LoadPictureFromJpgResource(...

var
  Form1: TForm1;

implementation
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
fiscch4

Registriert seit: 23. Nov 2010
8 Beiträge
 
Delphi 7 Personal
 
#7

AW: JPGs aus einer Resourcendatei laden

  Alt 25. Nov 2010, 16:46
Hallo,

also das mit der Procedure funktioniert jetzt soweit nur das immer noch die Fehlermeldung kommt das die Resource nicht gefunden wurde
hier mal der Quellcode komplett
Delphi-Quellcode:
unit testen;

interface

uses
  JPEG, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
procedure LoadPictureFromJpgResource(picture : TPicture;const AResName: string);
var
  Form1: TForm1;

implementation

{$R *.dfm}
{$R bilder.RES}

procedure LoadPictureFromJpgResource(picture : TPicture;const AResName: string);
var
   rs: TResourceStream;
   jpg: TJPEGImage;
begin
   rs := TResourceStream.Create(HInstance,AResName,RT_RCDATA);
   jpg := TJPEGImage.Create;
   try
      jpg.LoadFromStream(rs);
      picture.Assign(jpg);
   finally
      jpg.Free;
      rs.Free;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

  LoadPictureFromJpgResource(Image1.Picture,'TEST2');
end;


end.
der Code von der bilder.RC datei die ich dann per drag and drop in die BRCC32.exe schieb und eine bilder.RES rausbekommen
Code:
TEST1 RT_RCDATA "C:\Users\Public\Documents\delphi\test\test.jpg"
TEST2 RT_RCDATA "C:\Users\Public\Documents\delphi\test\images.jpg"
warum kann er die Resource nicht finden habe ich beim einbinden was falsch gemacht?
oder schon bei der Erstellung der bilder.RES?
der Rest würde denk ich funktionieren
Vielen Dank

PS: ich bin echt positiv überrascht das ihr so viel geduld habt... und mir helft
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#8

AW: JPGs aus einer Resourcendatei laden

  Alt 25. Nov 2010, 16:58
Code:
TEST1 RT_RCDATA "C:\Users\Public\Documents\delphi\test\test.jpg"
TEST2 RT_RCDATA "C:\Users\Public\Documents\delphi\test\images.jpg"
Es muss TEST1 RCDATA heißen. RT_RCDATA ist die Konstante aus Delphi. Das kannst du auch sehen, wenn du dir die EXE mit einem Ressourceneditor betrachtest.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: JPGs aus einer Resourcendatei laden

  Alt 25. Nov 2010, 17:15
hat mich jetzt auch etwas Zeit gekostet ich verwende immer den XN ResourceEditor
Code:
TEST1 RCDATA "C:\Users\Public\Documents\delphi\test\test.jpg"
TEST2 RCDATA "C:\Users\Public\Documents\delphi\test\images.jpg"
EDIT:
zu spät....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:35 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