Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 mamu
... y como sería eso? Mi forma esta mal?
Más o menos me refería a eso.
No vi tu respuesta.
Yo intentaría capturar el tipo concreto del error; Algo así:

Código Delphi [-]
try
  Image1.Picture.Bitmap.LoadFromFile('C:\Temp\Readme.bmp');
except
  on E:EInvalidGraphic do begin
    MessageDlg('Archivo Dañado o no es un tipo de imagen reconocido.', mtError, [mbOK], 0);
    Image1.Picture.Bitmap.LoadFromFile('c:\mi_imagen_para_el_error.jpg');
  end;
  on E:EFOpenError do begin
    MessageDlg('El archivo de imagen no existe.', mtError, [mbOK], 0);
  end
  else begin
    MessageDlg('Error desconocido', mtError, [mbOK], 0);
  end;
end;
__________________
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
  #2  
Antiguo 22-05-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 21
MaMu Va por buen camino
No importa como intente la captura de la excepcion, siempre me sale:

'JPEG error #42'

saltando todo el codigo de tratamiento.

Why?!?!
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #3  
Antiguo 22-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 mamu
No importa como intente la captura de la excepcion, siempre me sale:'JPEG error #42'
Pues yo he hecho la prueba renombrando un TXT a BMP e intentando cargarlo y me sale bien...
__________________
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
  #4  
Antiguo 22-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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
Pues he probado con un Readme.txt renombreado a Readme.bmp y readme.jpg y este código y me lo captura perfectamente.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin


  try
    Image1.Picture.LoadFromFile('C:\Temp\Readme.jpg');
  except
    on E:EInvalidGraphic do begin
      MessageDlg('Archivo Dañado o no es un tipo de imagen reconocido.', mtError, [mbOK], 0);
      Image1.Picture.LoadFromFile('c:\mi_imagen_para_el_error.jpg');
    end;
    on E:EFOpenError do begin
      MessageDlg('El archivo de imagen no existe.', mtError, [mbOK], 0);
    end
    else begin
      MessageDlg('Error desconocido', mtError, [mbOK], 0);
    end;
  end;
end;

Desactiva que salten las excepciones en diseño (Stop on Delphi exceptions) en el IDE.
__________________
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
  #5  
Antiguo 22-05-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 21
MaMu Va por buen camino
Hice todo, desactive eso del IDE, lo que yo hago es lo siguiente:


Código Delphi [-]
for z:=0 to Lista.Count-1 do
  begin
     CopiarArchivo(lista.Strings[z],dirtmp+'\'+ExtractFileName(lista.Strings[z]));
     try
       Image5.Picture.LoadFromFile(lista.Strings[z]);
     except
       on EInvalidGraphic do
          begin
            DeleteFile(dirtmp+'\'+ExtractFileName(lista.Strings[z]));
          end;
       on EFOpenError do
           begin
             DeleteFile(dirtmp+'\'+ExtractFileName(lista.Strings[z]));
           end;
       on EOutOfResources do
           begin
             DeleteFile(dirtmp+'\'+ExtractFileName(lista.Strings[z]));
           end;
        on E: EOSError do
           begin
             DeleteFile(dirtmp+'\'+ExtractFileName(lista.Strings[z]));
           end;
        on EReadError do
           begin
             DeleteFile(dirtmp+'\'+ExtractFileName(lista.Strings[z]));
           end;
      else begin
         DeleteFile(dirtmp+'\'+ExtractFileName(lista.Strings[z]));
      end;
 end;


Pero no me borra el archivo que esta mal, me lo deja. Porque?
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;

Última edición por MaMu fecha: 22-05-2007 a las 14:25:15.
Responder Con Cita
  #6  
Antiguo 22-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Interesante código manu, pero como no te andes con cuidado puedes quedarte sin fotos En concreto, los errores EOutOfResources y EOSError pueden producirse aunque el archivo sea valido, solo hace falta que pilles al windows en un "mal momento".

Por otro lado, comprueba que:
Código Delphi [-]
dirtmp+'\'+ExtractFileName(lista.Strings[z])
es verdaderamente la ruta del archivo.
Responder Con Cita
  #7  
Antiguo 22-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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 mamu
Pero no me borra el archivo que esta mal, me lo deja. Porque?
¿Lo has ejecutado paso a paso? ¿Exactamente por dónde está pasando?
Estaría bien que comprobaras antes de borrar si el archivo existe...
__________________
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
  #8  
Antiguo 22-05-2007
Wellnic Wellnic is offline
Miembro
 
Registrado: mar 2007
Posts: 70
Poder: 20
Wellnic Va por buen camino
Para saber desde el principio si un fichero es una imagen (tenga la extensión que tenga) lo mejor es abrirlo en modo binario y comprobar si tiene determinada característica propia de ese archivo. Por ejemplo, los jpg siempre tienen la cadena JFIF en la 7ª posición:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var fc: File;
    tf: String;

begin
tf:= StringOfChar(#32, 4);//hace sitio para almacenar 4 caracteres
AssignFile(fc, 'C:\Imagen.jpg');
FileMode:= fmOpenRead; // abrir como solo lectura... por si acaso
Reset(fc, 1);
Seek(fc, 6); //situar el puntero en la 7ª posición
BlockRead(fc, tf[1], 4); //lee esos 4 bytes en la variable tf
CloseFile(fc);
If tf='JFIF' Then ShowMessage('Es una imagen JPG');
end;
Cada formato de imagen tiene sus características, que se pueden averiguar con cualquier editor hexadecimal.
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
Validar Nif Colgueit OOP 12 10-05-2006 02:50:28
Validar Fecha Gustavo Gowdak OOP 7 03-05-2006 19:24:37
Validar un campo gluglu Varios 3 14-01-2005 15:43:58
validar sin exepciones gustavo2 Conexión con bases de datos 2 30-01-2004 15:54:56
validar en qry alcides SQL 2 06-01-2004 18:11:19


La franja horaria es GMT +2. Ahora son las 04:29:27.


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
Copyright 1996-2007 Club Delphi