AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein JPeg aus Ressource in TImage laden, kriegs aber nicht hin.
Thema durchsuchen
Ansicht
Themen-Optionen

JPeg aus Ressource in TImage laden, kriegs aber nicht hin.

Ein Thema von Armageddon · begonnen am 26. Aug 2003 · letzter Beitrag vom 31. Aug 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von The-X
The-X

Registriert seit: 30. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#11

Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi

  Alt 31. Aug 2003, 00:38
Kleiner Tipp: Unit Jpeg

hoffe, das ich 'n bisschen helfen konnte...
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#12

Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi

  Alt 31. Aug 2003, 11:50
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

Darty und ich haben uns darüber mal im ICQ unterhalten.
Dachten das ungefähr so:

Delphi-Quellcode:
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;
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.

Hoffe es ist verständlich formuliert.

Gruß Arma.
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#13

Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi

  Alt 31. Aug 2003, 15:02
Ich habs

Hier die Lösung:

Delphi-Quellcode:
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;
Und aufrufen wie gehabt so:

LoadImage('bild1', Image1); 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.

Gruß Arma.
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#14

Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi

  Alt 31. Aug 2003, 15:43
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
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#15

Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi

  Alt 31. Aug 2003, 16:41
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

Gruß Arma.
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#16

Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi

  Alt 31. Aug 2003, 16:48
Hi!

Wahrscheinlich habe ich mich unklar ausgedrückt:

Delphi-Quellcode:
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;
So meinte ich das.

Zitat:
Aber ansonsten kann es sich glaub sehen lassen denk ich für nen Anfänger wie mich
Ich wollte Deine Leistung in keiner Weise schmälern und finde auch, dass diese Prozedur sehr nützlich ist. Wie gesagt, ich finde, sie sollte ins Code-Library.

MfG
Peter
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#17

Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi

  Alt 31. Aug 2003, 16:59
Hi Peter,

perfekt aber nen kleinen Hacken hat es noch bei Dir

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.
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#18

Re: JPeg aus Ressource in TImage laden, kriegs aber nicht hi

  Alt 31. Aug 2003, 17:07
Zitat:
das ";" vor dem else müßte weg sonst meckert er beim compilieren.
Wie konnte mir das passieren? Diese Schande!
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:23 Uhr.
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