Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Le estoy dando vueltas a tu pregunta y no tengo muy claro lo que quieres. dec supone que tu tienes la imagen que quieres cargar dentro del directorio de tu aplicación o en un subdirectorio de la misma, y que tu duda es como poder encontrarla. Si es así la respuesta de dec es correctisima ... bueno quizá quitándole una pequeña errata
Código Delphi [-]
  Image1.Picture.LoadFromFile(rutaImagen);

Ahora bien, puede que tu estés preguntando por un método para incluir una imagen dentro de tu ejecutable por código. Eso ya es un poco mas complicado, partiendo de que un ejecutable no se puede modificar a si mismo y que la imagen se tendría que agregar como un recurso. Se podría hacer, pero no creo que valga la pena.

Por ultimo también se me ocurre que puedes estar preguntando como mostrar un cuadro de dialogo para seleccionar una imagen, y que en sucesivas ejecuciones ya siempre se utilice la misma ruta. Eso ya es mas sencillo, por ejemplo para obtener la ruta, y guardarla:

Código Delphi [-]
begin
  with TOpenDialog.Create(nil) do
  try
    if Execute then
    begin
      Image1.Picture.LoadFromFile(Filename);
      with TStringList.Create do
      try
        Values['Ruta']:= ExpandFileName(Filename);
        SaveToFile(ChangeFileExt(ParamStr(0),'.ini'));
      finally
        Free;
      end;
    end;
  finally
    Free;
  end;
end;

El código anterior puedes ponerlo por ejemplo dentro de un botón. Ahora ya tenemos la ruta de la imagen en nuestro archivo de inicio, ahora solo falta que cuando se inicie la aplicación comprobemos si hay alguna ruta guardada y carguemos la imagen. Por ejemplo en el evento OnCreate del formulario coloca esto:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  if FileExists(ChangeFileExt(ParamStr(0),'.ini')) then
  with TStringList.Create do
  try
    LoadFromFile(ChangeFileExt(ParamStr(0),'.ini'));
    if Values['Ruta']<>'' then
      Image1.Picture.LoadFromFile(Values['Ruta']);
  finally
    Free;
  end;
end;
Responder Con Cita
  #2  
Antiguo 13-11-2006
federki federki is offline
Registrado
 
Registrado: nov 2006
Posts: 7
Poder: 0
federki Va por buen camino
Primeramente MUCHAS A TODOS por vuestra impresionante ayuda..

Decir que dec ha acertado de lleno en lo que estoy haciendo.
Estoy haciendo un instalador con InnoSetup. Y el problema es ese que he creado un TBitmapImage.

dec:"no hay ningún dilema en incluir las imágenes que estimes oportuno, en la carpeta que estimes oportuno: por ejemplo en un subdirectorio dentro de la carpeta en que se instale/copie tu ejecutable."
Yo sé crear la carpeta, pero pienso que la imagen se cargará antes de que se cree la carpeta.
Si pudieras poner un simple ej. para orientarme te lo agradecería, porque has entendido lo que quiero hacer.

Sigo leyendo vuestras respuestas:
seoane dice: "Ahora bien, puede que tu estés preguntando por un método para incluir una imagen dentro de tu ejecutable por código. Eso ya es un poco mas complicado, partiendo de que un ejecutable no se puede modificar a si mismo y que la imagen se tendría que agregar como un recurso. Se podría hacer, pero no creo que valga la pena."
Esto es lo que quiero hacer seoane..

Última edición por federki fecha: 13-11-2006 a las 21:34:51.
Responder Con Cita
  #3  
Antiguo 13-11-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En InnoSetup cuentas con un Script de ejemplo de nombre "CodeClasses.iss". En el mismo se utilizan, entre otras clases soportadas, el "TBitmapImage". Puede verse como se incluye (temporalmente) un determinado archivo de imagen, y cómo luego se crea una instancia de la clase mencionada y se carga (desde el directorio temporal correspondiente) la imagen susomentada. Echa un vistazo. Es interesante y creo que resuelve el problema.

Por cierto, la clase "TBitmapImage" se añadió a InnoSetup en la versión 4.1.2. Asegúrate de que utilizas esa versión o una superior.

Aquí un extracto del código fuente del Script de InnoSetup que he mencionado:

Código:
[ Files ]
Source: compiler:WizModernSmallImage.bmp; Flags: dontcopy

[ Code ]

{ TBitmapImage }

Page := CreateCustomPage(Page.ID, 'Custom wizard page controls', 'TBitmapImage');

BitmapFileName := ExpandConstant('{tmp}\WizModernSmallImage.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapFileName));

BitmapImage := TBitmapImage.Create(Page);
BitmapImage.AutoSize := True;
BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
BitmapImage.Parent := Page.Surface;
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 13-11-2006 a las 22:11:12.
Responder Con Cita
Respuesta



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
Cargar Imagen johurgi Gráficos 4 14-08-2006 17:43:11
al cargar imagen kiringui Gráficos 2 12-06-2006 12:47:50
cargar imagen animada (gif) jorgito.crazy Gráficos 2 02-06-2006 16:09:27
cargar imagen majosf Conexión con bases de datos 3 21-09-2005 18:17:07
cargar imagen en access detybel Conexión con bases de datos 1 07-04-2005 09:37:35


La franja horaria es GMT +2. Ahora son las 17:23:12.


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