![]() |
Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi
Kleiner Tipp: Unit Jpeg ;)
hoffe, das ich 'n bisschen helfen konnte... |
Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi
Hi The-X
Ähm danke für den Tip. Hab das natürlich schon gemacht *g* Der Rest funktioniert auch. Häng nur noch dran fest das ich irgendwie überprüfen sollte ob das bild auch in der Exe vorhanden ist. Weiß nur nicht genau wie :gruebel: Darty und ich haben uns darüber mal im ICQ unterhalten. Dachten das ungefähr so:
Delphi-Quellcode:
wobei ich noch nicht weiß wie oder ob man das überhaupt prüfen kann ob das bild existiert! Ist natürlich total Quatsch die "if exists bild in der exe" Zeile.
procedure LoadImage(Bild: String; Ziel: TImage);
var b: TJPEGImage; s: TResourceStream; begin if exists Bild in der exe then s := TResourceStream.Create(HINSTANCE, Bild, 'JPG'); b := TJPEGImage.Create; b.LoadFromStream(S); Ziel.Picture.Bitmap.Assign(b); b.Free; s.Free else s := TResourceStream.Create(HINSTANCE, 'Fehlerbild', 'JPG'); b := TJPEGImage.Create; b.LoadFromStream(S); Ziel.Picture.Bitmap.Assign(b); b.Free; s.Free; end; end; Hoffe es ist verständlich formuliert. Gruß Arma. |
Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi
Ich habs :bounce2:
Hier die Lösung:
Delphi-Quellcode:
Und aufrufen wie gehabt so:
procedure LoadImage(Bild: String; Ziel: TImage);
var b: TJPEGImage; s: TResourceStream; r: Cardinal; begin r := FindResource(HInstance, PChar(Bild), 'JPG'); if r <> 0 then begin s := TResourceStream.Create(HInstance, Bild, 'JPG'); b := TJPEGImage.Create; b.LoadFromStream(s); Ziel.Picture.Bitmap.Assign(b); b.Free; s.Free; end else begin s := TResourceStream.Create(HInstance, 'Fehlerbild', 'JPG'); b := TJPEGImage.Create; b.LoadFromStream(s); Ziel.Picture.Bitmap.Assign(b); b.Free; s.Free; end; end;
Delphi-Quellcode:
Vielleicht mach ich mal noch ein schönes Beispiel das man dann vielleicht in die Code-Library setzen kann. So mit allem drum und drann wie ich das Resource-File mache usw.
LoadImage('bild1', Image1);
Gruß Arma. :coder: |
Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi
Hi!
Vielleicht wäre es schöner, alles, was in beiden Zweigen der IF-Anweisung vorkommt, nach draußen zu packen. Spart ein paar Zeilen. Das mit dem Eintrag im Code-Library ist eine gute Idee. Zur Erstellung von Resourcen braucht dort aber, glaube ich, nicht noch etwas. Das hier reicht, denke ich., MfG Peter |
Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi
Hi Peter,
ähm das doch nur eine if-Abfrage. Außerdem kommt die procedure ja nur einmal im Programm vor. Da ich sie ja immer wieder nur mir dem LoadImage.... Aufrufe. Sicher geht das auch extern in ne dll. Aber ich wollte halt nur eine Datei haben zum weitergeben. Aber ansonsten kann es sich glaub sehen lassen denk ich für nen Anfänger wie mich :D Gruß Arma. |
Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi
Hi!
Wahrscheinlich habe ich mich unklar ausgedrückt:
Delphi-Quellcode:
So meinte ich das.
procedure LoadImage(Bild: String; Ziel: TImage);
var b: TJPEGImage; s: TResourceStream; r: Cardinal; begin r := FindResource(HInstance, PChar(Bild), 'JPG'); if r <> 0 then s := TResourceStream.Create(HInstance, Bild, 'JPG'); else s := TResourceStream.Create(HInstance, 'Fehlerbild', 'JPG'); b := TJPEGImage.Create; b.LoadFromStream(s); Ziel.Picture.Bitmap.Assign(b); b.Free; s.Free; end; Zitat:
MfG Peter |
Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi
Hi Peter,
perfekt aber nen kleinen Hacken hat es noch bei Dir :mrgreen: das ";" vor dem else müßte weg sonst meckert er beim compilieren. So wenn ich mal Morgen Zeit habe mach ich da einen schön geschriebenen Thread für die Code-Library. Gruß Arma. |
Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 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