Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error Jpg #53 y recursos (https://www.clubdelphi.com/foros/showthread.php?t=87047)

danielmj 09-11-2014 17:46:54

Error Jpg #53 y recursos
 
Hola de nuevo, he creado un archivo .res para pasarle una serie de imagenes a un TImage, a primera vista todo está bien. El código es este:

Código Delphi [-]
implementation

{$R *.dfm}
{$R hebillas.res}

...

procedure TForm1.ComboBox1Click(Sender: TObject)
var
  jpg: TJpegImage;
  Recursos: TResourceStream;

begin
  case comboBox1.ItemIndex of
    0:begin
        jpg:= TJpegImage.Create;
        Recursos := TResourceStream.Create( hInstance, 'RES_IMG_0', RT_RCDATA );
        Recursos.Seek( 1, soFromBeginning );
        jpg.LoadFromStream( Recursos );
        Image1.Canvas.Draw( 0, 0, jpg );
        Recursos.Free;
        Image1.Free;
      end;

    1:begin
        jpg:= TJpegImage.Create;
        Recursos := TResourceStream.Create( hInstance, 'RES_IMG_1', RT_RCDATA );
        Recursos.Seek( 2, soFromBeginning );
        jpg.LoadFromStream( Recursos );
        Image1.Canvas.Draw( 0, 0, jpg );
        Recursos.Free;
        Image1.Free;
      end;

    2:begin
        jpg:= TJpegImage.Create;
        Recursos := TResourceStream.Create( hInstance, 'RES_IMG_2', RT_RCDATA );
        Recursos.Seek( 3, soFromBeginning );
        jpg.LoadFromStream( Recursos );
        Image1.Canvas.Draw( 0, 0, jpg );
        Recursos.Free;
        Image1.Free;
      end;
end;

end;

El problema es que seleccione el elemento que sea del combo, el ejecutable me devuelve "error Jpg #53" y no sé como solucionarlo, he visto por la web que es problema de memoria, pero ¿como puedo arreglarlo?

Gracias de antemano.

danielmj 09-11-2014 18:14:56

He vuelto a guardar las imagenes esta vez con el paint de windows (anteriormente fue con photshop) y sigue dando el mismo error. No sé que hacer.
saludos.

edito: he cambiado el archivo .res y el código para usar el formato png en vez de jpg y ahora me da este error:


danielmj 10-11-2014 00:05:09

He instalado eurekalog trial a ver si me da mas informacion sobre el error, y me dice lo siguiente:



Personalmente, no me aclara mucho ¿alguien sabe interpretar ese mensaje?
Gracias.

olbeup 10-11-2014 08:59:23

Hola danielmj,

Has probado en pone un 0 (cero) al Recursos.Seek, en vez de 1, 2 ó 3, sólo 0 (cero)

Un saludo.

danielmj 10-11-2014 09:33:15

Hola olbeup, buenos dias

He probado eso que me comentas, y ahora no pasa nada al seleccionar el primer elemento del combo (index 0), no da error, pero tampoco muestra la imagen. Pero si selecciono el segundo o tercer elemento ya da error de "fuera de indices" (hay mas elementos pero el case solo llega por ahora hasta el segundo).

El archivo .rc es este:

Código:

0    image_0    RCDATA    0.jpg
1    image_1    RCDATA    0.jpg
2    image_2    RCDATA    2.jpg
3    image_3    RCDATA    3.jpg
4    image_4    RCDATA    4.jpg
5    image_5    RCDATA    4.jpg
6    image_6    RCDATA    6.jpg
7    image_7    RCDATA    7.jpg
8    image_8    RCDATA    8.jpg

Un saludo y gracias.

escafandra 10-11-2014 14:02:44

Código Delphi [-]
var
  jpg: TJpegImage;
  Recurso: TResourceStream;
begin
  Recurso:= TResourceStream.Create(0, 'RES_IMG_0', RT_RCDATA);
  jpg:= TJpegImage.Create;
  jpg.LoadFromStream(Recurso);
  Image1.Picture.Assign(jpg);
  Recurso.Free;
  jpg.Free;
end;


Saludos.

danielmj 10-11-2014 15:09:13

Muchisimas gracias escafandra, no sabes lo frustrante que es buscar información en internet (incluido en ingles) y no encontrar sino gente con el mismo error que me daba a mi.
En fin, ya funciona bien y sigo adelante.

Un saludo!


La franja horaria es GMT +2. Ahora son las 16:20:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi