![]() |
Gif Bild aus Stream laden
Moin,
ich habe ein Gif Bild in einer Ressource in das Programm eingebunden. Wenn ich das anzeigen will kann ich nicht
Delphi-Quellcode:
verwenden, weil er dann mit dem Gif nicht klarkommt.
Image1.Picture.Bitmap.loadfromStream
Ich habe die Gif Unit eingebunden, und wenn ich das Bild erst auf den Rechner speicher, und dann aus der Datei lade, dann funktioniert es auch. Ich habe nun überlegt die Grafik in die Zwischenablage zu kopieren. Geht das irgendwie (aus einem TRessourceStream)? Ich habe es mit
Delphi-Quellcode:
probiert, aber ich habe noch nichts gefunden, was ich da eintragen kann, so dass die Typen passen (weil es ja aus dem Stream kommt)
Clipboard.assign();
Die Uses habe ich bereits um ClipBrd erweitert (daran kanns auch nicht liegen). Danke im Vorraus für eure Vorschläge :bounce1: |
Re: Gif Bild aus Stream laden
Zitat:
warum versuchst Du denn das Bild aus einem Stream zu laden wenn es doch in einer Rssource liegt? Wäre da [oh].LoadFromResourceID();[/oh] besser? |
Re: Gif Bild aus Stream laden
Moin,
wenn ich das mit LoadFromRessourceID mache, stürte er mit ner Zugriffsverletzung ab...
Delphi-Quellcode:
Image1.Picture.Bitmap.LoadFromResourceID(HInstance, 1);
Zitat:
Mein größtes Problem ist glaube ich wirklich nur, dass er kein gif kennt... bzw, dass er das erst zur laufzeit kennt. Das ist ein einfaches Bild, was ich nur am Anfang einmal lade, und dann niewieder verändere, aber dadurch, dass Dalphi normal kein gif kennt, muss das laden halt zur laufzeit geschehen... :wall: |
Re: Gif Bild aus Stream laden
So müsste es gehen - mit der unit
![]()
Delphi-Quellcode:
Grüße vom marabu
{$R gif.res}
uses GifImage; procedure Test; const GifResName = 'marabu'; var gif: TGifImage; h: THandle; begin gif := TGifImage.Create; image := TImage.Create; h := GetModuleHandle(PChar(ParamStr(0))); gif.LoadFromResourceName(h, GifResName); image.Picture.Bitmap.Assign(gif.bitmap); gif.Free; end; |
Re: Gif Bild aus Stream laden
Habs hinbekommen...
Das Bild wird nun in ein TGIFImage geladen, das geht aus dem Ressourcestream heraus... Danach kann man dem TImage das GifImage zuweisen :bouncing4: ...das war auch echt zu einfach... :roll: Danke für die Vorschläge :-D @marabu: das geht dann sogar ohne handle...wo ich mich doch mit handels noch nicht so auskenne :zwinker: //EDIT:
Delphi-Quellcode:
procedure test;
var Res : TResourceStream; Bild : TGIFImage; begin Res := TResourceStream.Create(Hinstance, Ressourcenname, PChar('RC_DATA')); Bild := TGIFImage.Create; try Bild.LoadFromStream(res); finally Res.Free; end; Image1.Picture.Graphic := Bild; Bild.Free; end; |
Re: Gif Bild aus Stream laden
Zitat:
marabu |
Re: Gif Bild aus Stream laden
Naja, vielleicht benutzt man trotzdem handles, aber irgendwie nicht so offensichtlich... naja, du weißt schon :zwinker: :oops:
|
Re: Gif Bild aus Stream laden
hallo
ich versuche auch gif´s aus einer selbst angelegten resource datei zu laden, aber bei mir funktioniert es nicht. Die gifs habe ich in eine resourcedatei gepackt. textdatei (datei.rc) mit " 100 RC_DATA "Bildname1.gif" 101 RC_DATA "Bildname2.gif" 102 RC_DATA "Bildname3.gif" ... " erstellt. Dann mit brcc32.exe compiliert (brcc32.exe datei.rc) und datei.RES erhalten. Mit
Delphi-Quellcode:
habe ich die Datei in mein Projekt eingebunden.
{$R datei.RES}
Für Ressourcenname habe ich auch Bildname1.gif oder Bildname1 oder 100 angegeben. Mit deiner test-procedure habe ich jetzt versucht das gif zu laden. Leider bekomme ich immer nur eine Fehlermeldung. Resource Bildname1.gif wurde nicht gefunden oder Resource Bildname1 wurde nicht gefunden oder Resource 100 wurde nicht gefunden was mache ich falsch? gruss katrin |
Re: Gif Bild aus Stream laden
Moin Zusammen,
und in diesem Thread die Lösung: ![]() (falls man über die Suche erst auf diesen Thread trifft ;-)) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 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