Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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 09-08-2006
Avatar de anghell77
anghell77 anghell77 is offline
Miembro
 
Registrado: may 2006
Posts: 194
Poder: 12
anghell77 Va por buen camino
Manejo de Excepciones

Hola compañeros....una pregunta....
Tengo un Evento OnExit de un MaskEdit

Código Delphi [-]
procedure TForm2.MaskEdit1Exit(Sender: TObject);
begin
DBEdit6.Text:=MaskEdit1.Text;
end;

Esto lo hago para que los datos de la fecha que desee capturar el usuario se guarden en el campo DBEdit6 que es de tipo Date, porque por defecto se captura la fecha del sistema....

Como puedo validar que MaskEdit si al usuario se le van los dedos y se sale sin capturar datos o que no me arroje errores como

Cita:
" / / /" is not a valid date..... o "Invalid input value",
sé que se puede hacer atrapando la excepcion, pero no se como es esto...si alguien me puede ayudar, lo agradezco....

Saludos...
__________________
"...Ayer Bastaba un Sueño..."
Responder Con Cita
  #2  
Antiguo 09-08-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Oleiros. A Coruña.
Posts: 866
Poder: 12
kuan-yiu Va por buen camino
Algo así
Código Delphi [-]
try
  // Código que puede dar problemas
except
  // Lo que harás si da problemas
end;
Responder Con Cita
  #3  
Antiguo 09-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.030
Poder: 10
roman Tiene un aura espectacularroman Tiene un aura espectacular
Hola, el problema aquí es dónde colocar el try-except porque la validación de la máscara se hace antes del evento OnExit. Anteriormente hemos hablado de esto, quizá estos hilos sean de utilidad:

http://clubdelphi.com/foros/showthre...light=maskedit
http://www.clubdelphi.com/foros/showthread.php?t=4453

// Saludos
Responder Con Cita
  #4  
Antiguo 10-08-2006
Avatar de anghell77
anghell77 anghell77 is offline
Miembro
 
Registrado: may 2006
Posts: 194
Poder: 12
anghell77 Va por buen camino
Gracias Kuan_Yiu, eso si lo sabía, lo que necesitaba era ver más o menos que código agregar ahí donde dices, "código que puede dar problemas", pero ahora Roman me ha dado unos enlaces y estoy viendo todos los hilos que se enlazan a la respuesta.... Gracias Roman, yo notifico si he logrado hacer que funcione, o si se me atora en algún otro lado este asunto...

Saludos...
__________________
"...Ayer Bastaba un Sueño..."
Responder Con Cita
  #5  
Antiguo 10-08-2006
Avatar de anghell77
anghell77 anghell77 is offline
Miembro
 
Registrado: may 2006
Posts: 194
Poder: 12
anghell77 Va por buen camino
Lo he intentado...



He intentado, las sugerencias....

Código Delphi [-]
 
try
 DataModule2.DespachoFECHA.Value:=StrToDate(MaskEdit1.text);
  except
    Application.MessageBox('Formato de fecha incorrecto','Atención',mb_Ok +mb_IconQuestion);
    MaskEdit1.SetFocus;
  end;

Y aún me sigue mandando errores: "Invalid Input Value", o al escribir fechas invalidas, pues arroja "15/15/15 is not a valid Date"....
También intenté crear la clase subalterna del MaskEdit como sugiere Roman

[left]
Código Delphi [-]
 <div align="left"><div align="left">type
  TMaskEdit = class(Mask.TMaskEdit)
  protected
    procedure ValidateError; override;
  end;

  TForm1 = class(TForm)
    { métodos y propiedades }
  end;

implementation

procedure TMaskEdit.ValidateError;
begin
  MessageBeep(0);
  raise EDBEditError.Create('Formato incorrecto');
end;
end.div>div>

Pero ésta alternativa sólo no avisa nada....obviamente no deja que siga con los demás procesos que realizo, como Guardar, el cual está condicionado a la captura correcta de todos los datos; pero no dice que esté mal la entrada ni dice si no se ha escrito algo, obvio es funcional porque no aparecen los errores en inglés pero no los señala tampoco como lo escribimos....

Alguna sugerencia?? GRACIAS.....

{Saludos}
__________________
"...Ayer Bastaba un Sueño..."
Responder Con Cita
  #6  
Antiguo 10-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 22
Lepe Va por buen camino
Ejecuta el programa desde el explorador de windows.

¿no será que tienes la opcion de "Stop on Delphi Exception" activada en tools -> debugger options -> language

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 10-08-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.493
Poder: 26
dec Va camino a la famadec Va camino a la fama
Hola,

Yo también estuve haciendo pruebas, y, me temo que la clave la ha dado Román más arriba:

Cita:
Empezado por Román
Hola, el problema aquí es dónde colocar el try-except porque la validación de la máscara se hace antes del evento OnExit.
Fíjate en lo que Juan Antonio dice en este mensaje, precisamente, que el componente que estás tratando de utilizar tiene un problema "de diseño", que implica que lanza determinados mensajes sin que puedas hacer nada por evitarlo, por lo que se ve.

Tal vez debas plantearte cambiar de componente.
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #8  
Antiguo 10-08-2006
Avatar de anghell77
anghell77 anghell77 is offline
Miembro
 
Registrado: may 2006
Posts: 194
Poder: 12
anghell77 Va por buen camino


Cada que me ocurre algo por el estilo me siento bien babas....
Había olvidado desactivar "Stop on Delphi Exception"...

Se ha solucionado la cuestión...ahora, como me han aconsejado, ubicar el código de la excepción para que valide el formato antes de salir del MaskEdit...

Por lo demás, fijate Dec, que me he puesto a leer el enlace y me ha dejado pensando al respecto... más adelante intentaré realizar pruebas con otros componentes para evitar los "errores del diseño" del MaskEdit...

Muchas Gracias a Todos!!!


{Saludos}
__________________
"...Ayer Bastaba un Sueño..."
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
No me sale el manejo de excepciones Torreblanca Varios 3 11-07-2006 18:32:45
Excepciones adpa OOP 5 14-12-2005 15:45:45
manejo de excepciones try y except no funciona gulder Conexión con bases de datos 4 10-11-2005 14:50:00
manejo de excepciones el_barto Varios 4 08-06-2005 09:48:36
Ayuda con Manejo de Excepciones buffygcs SQL 2 21-04-2005 17:52:09


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


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