![]() |
Validar Fecha de un TDateField
Buenas tardes estoy utilizando delphi 6 y estoy utilizando un campo TdateField, más tengo la siguiente inquietud, para validar la fecha,
Esta Fecha tiene la mascara igual que la mascara del sistema operativo ejemplo ##/##/## dd/mm/aa, y estoy utilizando el onvalidate y onexit del campo pero no me permite manipular el objeto, aparentemente primero esta validando que la fecha que se está introduciendo sea correcta. duda que evento tengo que utilizar para validar la fecha antes de que el sistema me envie un mensaje de error, lo que quiero hacer es que al escribir 01 automaticamente con la exception complete la fecha con la fecha del sistema 01/05/04 o bien 01/04 y lo complete con 01/04/04. Estuve buscando algo por el estilo y vi que usan de MaskEdit y declaran un procedure ValidateError; override; pero en el caso de un TdateField y un TTIMEField cual debo utilizar. Por su atención gracias. |
Pues utiliza elevento onValidate del campo, me imagino que utilizas el componente ttable
|
Ese estoy utilizando
Eso mismo estoy haciendo en el campo xx en el onvalidate tengo lo siguiente
procedure TPrincipal.xxonValidate(Sender: TField); var texto:variant;conttemp2,conttemp:integer; cccc:variant; Hoy : TDateTime; Year, Month, Day: Word; begin showmessage('Error'); end; Pero para entrar a este onvalidate tiene que estar bien escrita la fecha, con la mascara que le pongo ##/##/##, no se si existe un forma de capturar el error ante de esto, o que hace internamente delphi, para que yo suprima el mensaje de error que envia delphi por completar la fecha como lo comentaba. Project api.exe raised exception class EconvertError With Message "20/04/" is not a valid date. Process Stopped. Use Step or to Continue. Lo que necesito saber es como capturar este mensaje para en caso se de ser una fecha erronea yo completarla. |
Mira disculpaqueno te delainformacion completa lo que pasa esque no tengo delphi a mano en el objeto tfield debe haber otro evento(no recuerdo elnombre :o ), con eso lopodras lograr
Ahora para capturar el error puedes usar el evento del TTable que te da la excepcion al grabar |
Cita:
Para aclarar, puedo decir que el evento OnValidate, en este caso, se disparará solo en caso que se haya introducido una fecha sintácticamente válida... en espera que vos confirmes que es una fecha aceptable... hasta luego. ;) |
Cita:
|
listo
tiene razon
se tiene que hacer lo siguiente en el settext del objeto se tiene que capturar el texto y en el gettext se tiene que poner la cadena valida del texto en este caso la fecha. El validate no es necesario para este caso, por su atención gracias |
La franja horaria es GMT +2. Ahora son las 01:21:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi