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 23-07-2004
ramonibk ramonibk is offline
Miembro
 
Registrado: may 2004
Posts: 193
Poder: 21
ramonibk Va por buen camino
Cargar imagenes

Buenas. tengo un pequeño problemilla que seguro que alguien aquí me Puede dar algún consejo.

tengo que cargar imágenes que dependen del botón que se pulse

así que uso.



Código:
  Imagen.Picture.loadFromFile('Imagenes\Imagen.jpg');




Pero claro esto funciona muy bien si la imagen se encuentra sin problemas



pero hay alguna manera de hacer lo mismo pero si no encuentra la imagen especificada me ponga una por defecto????



Gracias a todos de antemano
Responder Con Cita
  #2  
Antiguo 23-07-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Código Delphi [-]
  try
    { Intenta cargar la imagen }
    Image1.Picture.LoadFromFile('c:\error.jpg');
  except
    { Si se produce un error al cargar la imagen }
    Image1.Picture.LoadFromFile('c:\windows\Bosque.bmp');
  end;
La imagen por defecto, podría ser un recurso, o podría ser otro TImage...
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 23-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Yo, a la rutina dada por delphi.com.ar, le añadiría una clausula ON, para cargar la imágen por defecto en caso que la imágen buscada no exista en disco, pero dejar transcurrir cualquier otra excepción que pudiera producirse (falta de recursos, por ejemplo).

Es por mi (buena) costumbre de ser tan específico como se pueda cuando capturo excepciones, y no comerme errores que no se como controlar y que debiera delegar a partes mas externas (o al propio delphi).

Código Delphi [-]
  try
    { Intenta cargar la imagen }
    Image1.Picture.LoadFromFile('c:\error.jpg');
  except
    { Si se produce un error al cargar la imagen }
    on EFileNotFound do
      Image1.Picture.LoadFromFile('c:\windows\Bosque.bmp');
  end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 24-07-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por jachguate
Yo, a la rutina dada por delphi.com.ar, le añadiría una clausula ON, para cargar la imágen por defecto en caso que la imágen buscada no exista en disco..
Justamente ese creo que es el error mas previsible, de ser así utilizaría la función FileExists antes de tratar cargar el archivo, siempre prefiero evitar que se disparen excepciones, yo lo entendí por el lado de que el archivo sea corrupto ("si la imagen se encuentra sin problemas") pero ahora que releo.....
Código Delphi [-]
procedure TForm1.CargarImagen(AImagen: TFileName);
begin
  if FileExists(AImagen) Then
    Image1.Picture.LoadFromFile(AImagen)
  else
    Image1.Picture.LoadFromFile('c:\default.jpg');
end;
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 26-07-2004
ramonibk ramonibk is offline
Miembro
 
Registrado: may 2004
Posts: 193
Poder: 21
ramonibk Va por buen camino
como decia jachguate es caso lo quiero por si acaso no se encuentra la imagen
he echo vaias pruevas con lo que me aveis mandado
en las que me an dado barios problemas.

al usar
Código:
 
 try
	{ Intenta cargar la imagen }
	Image1.Picture.LoadFromFile('c:\error.jpg');
  except
	{ Si se produce un error al cargar la imagen }
	Image1.Picture.LoadFromFile('c:\windows\Bosque.bmp');
  end;
Me da de nuevo el fallo de que no encuentra la imagen y si luego me carga la segunda imagen.
y si lo que uso es
Código:
  try
	{ Intenta cargar la imagen }
	Image1.Picture.LoadFromFile('c:\error.jpg');
  except
	{ Si se produce un error al cargar la imagen }
	on EFileNotFound do
	  Image1.Picture.LoadFromFile('c:\windows\Bosque.bmp');
  end;
Me genera error en la compilacion
que 'EFileNotFound' no esta declarada.
Responder Con Cita
  #6  
Antiguo 26-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por ramonibk
Me genera error en la compilacion
que 'EFileNotFound' no esta declarada.
Es un lapsus de tu servidor... La clase apropiada es EFOpenError

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 26-07-2004
ramonibk ramonibk is offline
Miembro
 
Registrado: may 2004
Posts: 193
Poder: 21
ramonibk Va por buen camino
Muchas garcias.
de todas maneras correjiralgo que dige antes

si uso la el formato
Código:
try
	{ Intenta cargar la imagen }
	Image1.Picture.LoadFromFile('c:\error.jpg');
  except
	{ Si se produce un error al cargar la imagen }
	Image1.Picture.LoadFromFile('c:\windows\Bosque.bmp');
  end;
parece que el fayo me lo da solo a la hora de ejecurat con delphi abierto
si cierro y ejecuto la aplicacion no me da ningun fallo
Responder Con Cita
  #8  
Antiguo 26-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por ramonibk
parece que el fayo me lo da solo a la hora de ejecurat con delphi abierto si cierro y ejecuto la aplicacion no me da ningun fallo
¿Te referis al mensaje?

Porque "el fallo", si el archivo no existe, siempre se da... pero al tratar la excepción (con la clausula Except), el usuario no verá ningún mensaje. Si tampoco queres verlo vos cuando esté abierto el IDE, agregá la clase de la excepción a las ignoradas por el debugger (Tools|Language Exceptions).

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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


La franja horaria es GMT +2. Ahora son las 16:06:51.


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