Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Gif aus Resoure-datei nutzen (https://www.delphipraxis.net/76592-gif-aus-resoure-datei-nutzen.html)

Katrin_K 6. Sep 2006 19:13


Gif aus Resoure-datei nutzen
 
Hallo an alle

Ich mochte in meinem Projekt einige gif´s nutzen und die zur laufzeit laden.
die gifs habe ich in eine resourcedatei gepackt.
textdatei (datei.rc) mit
"
100 RCDATA "Bildname1.gif"
101 RCDATA "Bildname2.gif"
102 RCDATA "Bildname3.gif"
...
" erstellt. Dann mit brcc32.exe compiliert (brcc32.exe datei.rc) und datei.RES erhalten.

Mit
Delphi-Quellcode:
{$R bilder.res}
habe ich die Datei in mein Projekt eingebunden.

Wie kann ich jetzt auf die Bilder zugreifen???
Dachte es geht mit LoadFromResourceID aber bei TImage klappt das ja nicht. :(
Habe ich vielleicht auch bei der resource datei etwas falsch gemacht?

Gruss Katrin

Klaus01 6. Sep 2006 19:21

Re: Gif aus Resoure-datei nutzen
 
Hallo Katrin,

vielleicht ist das hier -> http://www.delphipraxis.net/internal...ct.php?t=53925
Deine Lösung.

Grüße
Klaus

Katrin_K 6. Sep 2006 19:57

Re: Gif aus Resoure-datei nutzen
 
Danke für die Antwort.

Habe mir den Bericht durchgelesen und alles probiert, aber leider bekomme ich beim ausführen der ladenprocedure immer eine fehlermeldung. Resource Bildname1.gif wurde nicht gefunden.
Ist meine Resourcedatei vielleicht falsch aufgebaut???

Delphi-Quellcode:
{$R datei.res} 

procedure laden;
var
  Res : TResourceStream;
  Bild : TGIFImage;
begin
  Res := TResourceStream.Create(Hinstance, 'Bildname1.gif', PChar('RC_DATA'));
  Bild := TGIFImage.Create;
  try
    Bild.LoadFromStream(res);
  finally
    Res.Free;
  end;

  Image1.Picture.Graphic := Bild;
  Bild.Free;
end;

3_of_8 6. Sep 2006 19:58

Re: Gif aus Resoure-datei nutzen
 
'Bildname1.gif' ist auch nicht der Name deiner Ressource, sondern 100.

Katrin_K 6. Sep 2006 20:31

Re: Gif aus Resoure-datei nutzen
 
das hatte ich auch schon ausprobiert.

Delphi-Quellcode:
Res := TResourceStream.Create(Hinstance, 'Bildname1.gif', PChar('RC_DATA'));
Res := TResourceStream.Create(Hinstance, 'Bildname1', PChar('RC_DATA'));
Res := TResourceStream.Create(Hinstance, '100', PChar('RC_DATA'));
immer die selbe fehlermeldung.

Resource 100 wurde nicht gefunden. :wall:

Harry M. 6. Sep 2006 20:47

Re: Gif aus Resoure-datei nutzen
 
Hast Du die GifImage eingebunden?

//Edit: Anscheind ja. TGifImage wird deklariert. Sorry

Katrin_K 6. Sep 2006 20:48

Re: Gif aus Resoure-datei nutzen
 
resourcedatei
100 RC_DATA "Bildname1.gif"
101 RC_DATA "Bildname2.gif"
102 RC_DATA "Bildname3.gif"
103 RC_DATA "Bildname4.gif"
104 RC_DATA "Bildname5.gif"
105 RC_DATA "Bildname6.gif"


compilieren hat mit brcc32.exe funktioniert.

Programmcode
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure test;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

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

procedure TForm1.test;
var
  Res : TResourceStream;
  Bild : TGIFImage;
begin
  Res := TResourceStream.Create(Hinstance, '100', PChar('RC_DATA'));
  Bild := TGIFImage.Create;
  try
    Bild.LoadFromStream(res);
  finally
    Res.Free;
  end;

  Image1.Picture.Graphic := Bild;
  Bild.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.test;
end;

end.

Wenn ich nun via Buttonklick zur laufzeit das gif laden will bekomme ich nur eine Fehlermeldung. :pale:

3_of_8 6. Sep 2006 20:52

Re: Gif aus Resoure-datei nutzen
 
Vergib mal alphanumerische IDs statt numerischen, also 'myGif' statt 100...

Harry M. 6. Sep 2006 20:55

Re: Gif aus Resoure-datei nutzen
 
Und wenn letzter Vorschlag auch nicht geht, dann nimm sie als EXEDATA in die Resource auf und dann einfach temporär auspacken und laden.
//Edit desweiteren mal die Methoden angucken

Delphi-Quellcode:
Image1.Picture.Bitmap.LoadFromResourceID(0, 100);
Image1.Picture.Bitmap.LoadFromResourceName(0, '100');

teebee 6. Sep 2006 20:58

Re: Gif aus Resoure-datei nutzen
 
Wie wärs mit
Delphi-Quellcode:
 Res := TResourceStream.Create(Hinstance, '#100', PChar('RC_DATA')); // Raute bei Integer-IDs: '#100'
Tut es das?
Gruß, teebee


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.
Seite 1 von 2  1 2      

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