Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-05-2015
viejinho viejinho is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 9
Poder: 0
viejinho Va por buen camino
¿Como puedo compilar una imagen y que el programa la busque en una ruta?

En una consulta anterior clubdelphi.com/foros/showthread.php?t=88138 pregunte como hacer que al hacer clic en un botón una imagen cambiara, la respuesta que me dieron era con este comando
Código Delphi [-]
Image1.Picture.LoadFromFile('nombredelaimagen.jpg');
Y me funciono de la perfección, el problema es que ahora el .exe siempre tiene que ir acompañado de la carpeta con las imágenes, porque si no esta la carpeta con las imágenes me dice que no las encuentra.

¿Hay alguna forma de que la imagen este dentro del programa y no me pida las imágenes que se cargaran al presionar un botón?
Responder Con Cita
  #2  
Antiguo 26-05-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Para eso puedes usar RECURSOS. De esa forma las imágenes se "compilan" o se añaden al EXE del programa.
Lo único que hay que hacer es cambiar la carga de la imagen desde disco, para hacerla desde el recurso.

Según el número, tamaño y cantidad de la imágenes debes plantate si esta opción es adecuada.

Para iconos, imágenes pequeñas o número reducido puede ser apropiado, si estamos hablando de muchas imágenes o de gran tamaño no te lo recomendaría.

En este tema se habla de ello. Aunque si buscas más por los términos "imagen recursos .RC" seguro que salen más...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 26-05-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola viejinho.

Algunos enlaces que te serán útiles para agregar datos a tu ejecutable:
Saludos

Edito: No ví el último mensaje mientras componía este, pero es la misma idea que te sugiere Neftali.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 03-06-2015
viejinho viejinho is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 9
Poder: 0
viejinho Va por buen camino
Muchas gracias, me funciono, sola una ultima duda.
Yo usaba
Código Delphi [-]
Image1.Picture.LoadFromFile('imagen.jpg');

Para cargar los Jpg, ahora con los recursos ya no se como se hace, se hacerlo con imagenes bmp usando el siguiente código:

Código Delphi [-]
Image1.Picture.Bitmap.LoadFromResourceName(hInstance,'imagen');

Pero para usarlo con jpg ¿como le hago? intente remplazando Bitmap por JPEG y por Graphic y en ninguna funciona.

PD: También me gustaría saber hacerlo con GIF y PNG.
Responder Con Cita
  #5  
Antiguo 03-06-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por viejinho Ver Mensaje
Pero para usarlo con jpg ¿como le hago? intente remplazando Bitmap por JPEG y por Graphic y en ninguna funciona.
Mismo código, pero prueba a añadir la unit JPEG al uses.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 03-06-2015
viejinho viejinho is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 9
Poder: 0
viejinho Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Mismo código, pero prueba a añadir la unit JPEG al uses.
Gracias por responder pero no me sirve ya agregue JPEG al uses pero me salen estos errores:

[Error] Unit1.pas(30): Illegal character in input file: '*' ($A0)
[Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'

Si le cambio el Bitmap por JPEG salen los mismos 2 errores mas el siguiente:

[Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'
Responder Con Cita
  #7  
Antiguo 03-06-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
viejinho,

Cita:
Empezado por viejinho
...Para cargar los Jpg, ahora con los recursos ya no se como se hace...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

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

procedure TForm1.Button1Click(Sender: TObject);
var
   RS : TResourceStream;
   ImageJpg : TJPEGImage;

begin

   try

      RS := TResourceStream.Create(hInstance, '#1', RT_RCDATA);

      ImageJpg := TJPEGImage.Create;
      ImageJpg.LoadFromStream(RS);

      Image1.Center := True;
      Image1.Stretch := True;
      Image1.Align := alClient;
      Image1.Picture.Graphic := ImageJpg;

   finally

      RS.Free;
      ImageJpg.Free;

   end;

end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, Carga una imagen JPG contenida en un archivo de recursos en un componente TImage, como se muestra en la siguiente imagen:



Espero sea útil

Nelson.
Responder Con Cita
  #8  
Antiguo 03-06-2015
viejinho viejinho is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 9
Poder: 0
viejinho Va por buen camino
Cita:
Empezado por nlsgarcia Ver Mensaje
viejinho,




Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

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

procedure TForm1.Button1Click(Sender: TObject);
var
   RS : TResourceStream;
   ImageJpg : TJPEGImage;

begin

   try

      RS := TResourceStream.Create(hInstance, '#1', RT_RCDATA);

      ImageJpg := TJPEGImage.Create;
      ImageJpg.LoadFromStream(RS);

      Image1.Center := True;
      Image1.Stretch := True;
      Image1.Align := alClient;
      Image1.Picture.Graphic := ImageJpg;

   finally

      RS.Free;
      ImageJpg.Free;

   end;

end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, Carga una imagen JPG contenida en un archivo de recursos en un componente TImage, como se muestra en la siguiente imagen:

Espero sea útil

Nelson.
Muchas gracias por responder, ¿como tendría que compilar la imagen en un recurso para ese código? Yo tengo compilada mi imagen del siguiente modo:

Cita:
#1 JPEG imagen.jpg
¿Tendría que compilarlo cambiando JPEG por RCDATA o por RC_DATA?

Disculpen las molestias, pero soy muy principiante, también me gustaría saber que cambiar en el código para usar otros formatos.
Responder Con Cita
  #9  
Antiguo 03-06-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
viejinho,

Cita:
Empezado por viejinho
...¿Tendría que compilarlo cambiando JPEG por RCDATA o por RC_DATA?...soy muy principiante...


Revisa esta información:
Espero sea útil

Nelson.
Responder Con Cita
  #10  
Antiguo 03-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por viejinho Ver Mensaje
¿Tendría que compilarlo cambiando JPEG por RCDATA o por RC_DATA?
Tres ejemplos concretos mas (sonido, imágen y font) :
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como puedo convertir una imagen a una imagen semitransparente? antonio302050 Gráficos 0 27-03-2010 17:01:48
Cómo puedo incluir Imagen de Fondo... Gbyte Gráficos 6 05-09-2008 07:50:49
Pasar como parametro la ruta de una imagen richy08 Impresión 6 19-08-2008 22:56:00
¿Programa que busque cadenas aleatoriamente en google? kakarotv5 Internet 1 12-11-2007 16:06:51
Como imprimir imagen usando la ruta de esta AndGaG Impresión 3 11-07-2006 22:14:25


La franja horaria es GMT +2. Ahora son las 00:09:06.


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