Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Generar una Excepción Try Catch para una Imagen. (https://www.clubdelphi.com/foros/showthread.php?t=78195)

samael205 28-03-2012 12:33:27

Generar una Excepción Try Catch para una Imagen.
 
Hola, que hay de nuevo?
Tengo el siguiente problema,
tengo una Base de datos, y una tabla, uno de los campos de esa tabla es de tipo VARCHAR que continen la ruta de una imagen.
He conseguido hacer que la imagen se muestre cada vez que que se cambia de tupla seleccionada.
Pero ahora necesito una exepción que me compruebe que la ruta de la imagen es correcta, si lo es que muestre la imagen,
Si no que no aga nada,
Me podeis dar algun ejemplo, que en delphi no se como crear Excepciones Gracias.

duilioisola 28-03-2012 12:53:31

Para empezar mira esto para comporbar si el fichero con la imagen existe o no.
Luego puedes generar una excepción siguiendo este link
Quedaría algo así:
Código Delphi [-]
if (not FileExists(ArchivoConImagen))
  then Raise Exception.CreateFmt('No encuentro el archivo de imagen : ''%s''', [ArchivoConImagen]);

duilioisola 28-03-2012 13:07:05

Buscando un poco más he encontrado esto que puede quedar mejor:
Código Delphi [-]
var
  E: EInOutError;
...
  if (not FileExists(ArchivoConImagen)) then
  begin
     E := EInOutError.Create( 'No encuentro el archivo de imagen : ''%s''', [ArchivoConImagen] );
     // El codigo de error para este tipo de excepcion puede tener estos valores (Help de Delphi 6)
     // 2 File not found
     // 3 Path not found
     // 5 Access denied
     // 32 Sharing violation
     E.Errorcode := 2;
     raise E;
  end;

Puedes leer un poco más sobre excepciones aqui.

samael205 28-03-2012 16:48:05

Solucionado y nuevo Problema
 
Gracias por tu consejo, me ha funcionado, Bastaba con el if FileExistst.
ahora bien,

Tengo un formulari y un Datamodule, El formulario contiene el TImage y el Datamodule la correspondiente base de datos con la tabla que contiene la ruta de la imagen.

He tenido que crear una Tabla Mastersource en el Formulario que referencie a la tabla del dataModule para obtener la imagen.
El problema esta en que el evento se ejecuta una accion mas tarde de lo habitual.
Es decir Cambio coche para ver los datos del siguiente coche pero la imagen no carga, se queda la misma, pero vuelvo a cambiar de coche y cambia la imagen por el ultimo registro del que estoy ahora. es decir

Estoy en 1

muestra 1

cambio a 2

muestra 1

Cambio a 3
Me muestra 2

Cambio a dos
Me muestra 3

No se si me he explicado bien. ¿Como puedo Solucionar este problema?

Esto no lo he podido hacer de otra manera, he intentado desde el AfterInsert de la tabla de origen en el DataModule modificar el LoadFromFile de Picture, pero al hacerlo desde El DM me dice acces violation. Como puedo encontrar solución a esto???.

duilioisola 28-03-2012 17:03:03

Abre otro hilo para esto, por favor.
Es una pregunta totalmente distinta y no tiene que ver con lo que estamos tratando ahora.

Gracias


La franja horaria es GMT +2. Ahora son las 07:32:25.

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