![]() |
JPGs aus einer Resourcendatei laden
Guten Abend,
ich versuche nun seit 3 abenden aus einer Resourcendatei ein JPG zu laden. hier mal ein Beispiel wie ich vorgehe: ich erstelle das Projekt
Delphi-Quellcode:
die rc datei sieht so aus
interface
uses JPEG, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, ImgList; type TForm1 = class(TForm) Panel1: TPanel; Image1: TImage; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation uses ausgabe; {$R *.dfm} {$R 'bilder.RES' 'bilder.rc' } procedure TForm1.FormCreate(Sender: TObject); begin Image1.Picture.Bitmap.LoadFromResourceID(HInstance, 1); end; end. 1 RT_RCDATA "bild.jpg" 2 RT_RCDATA "images.jpg" wenn ich das so ausführe kommt aber immer nur der Fehler: "Im Projekt Test ist eine Exveption der Klasse EACCESSVIOLATION aufgetretn. Meldung: 'Zugriffsverletzung bei Adress 0040885C in Modul 'Test.exe'. Lesen von Adress 0000000001'. Porzess wurde angehalten..." was mache ich falsch? ich habe die RC datei über den BRCC32 in eine .RES umgewandelt kann ich so keine JPGs laden oder wo ist mein Fehler? ich möchte gerne die aus der Resource laden damit ich am Ende nur die Exe habe ;) Vielen Dank für eure Antworten fiscch4 |
AW: JPGs aus einer Resourcendatei laden
JPEGs sind keine Bitmaps, oder?
|
AW: JPGs aus einer Resourcendatei laden
|
AW: JPGs aus einer Resourcendatei laden
Hallo,
danke schonmal für die schnellen antworten aber ich möchte ja gerade nicht eine .dll bei der Exe haben sonder wenn möglich nur eine Exe am ende in der die Bilder integriert sind. ist dies überhaupt möglich oder sollte ich am besten mit einer .dll arbeiten(habe ich noch nie gemacht)? Vielen Dank |
AW: JPGs aus einer Resourcendatei laden
Du brauchst keine DLL statt DLL-Handle verwendest Du HINSTANCE.
Das Zauberwort war LoadFromResourceName... |
AW: JPGs aus einer Resourcendatei laden
soll ich das dann mit Tresourcestream das ganze laden?
könntest du mir eventuell ein kurzes beispiel geben wie ich sowas mache? wenn ich die .Res schon habe und auch eingebunden? vielen dank |
AW: JPGs aus einer Resourcendatei laden
Ändere deinen Code mal nach:
Delphi-Quellcode:
Deine Image-Instanz hat ja noch kein Bild geladen. So ist u.U. das Bitmap-Property auch nil.
Image1.Picture.LoadFromResourceID(HInstance, 1);
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). |
AW: JPGs aus einer Resourcendatei laden
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 |
AW: JPGs aus einer Resourcendatei laden
sorry , ich hatte Dich in die falsche Ecke geschickt :pale:
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; |
AW: JPGs aus einer Resourcendatei laden
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 ... :D Also Vielen Dank und Gute Nacht |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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 by Thomas Breitkreuz