Delphi - Validar datos

 
Vista:

Validar datos

Publicado por Christian (41 intervenciones) el 28/03/2003 20:23:12
No se como validar mis datos
Por ahora estaba codificando la validacion en el evento onexit
de los dbedit pero al cliquear el boton de cancelar se desencadena
este evento y no me deja cancelar a menos que ponga algo en el dbedit.
Estuve mirando el evento onvalidate del objeto tfields y hay
que lanzar una excepcion para cancelar la confirmacion de los
datos con una mascara ocurre lo mismo por lo tanto cuando quiera
cliquear el boton de cancelar va a tratar de confirmar los cambios
y si el contenido del dbedit no es valido se producira la excepcion
y tengo la misma situacion que con el evento onexit.
(ya se que con la mascara presionando escape puedo salir pero no quiero que
el usuario tenga que hacer esto cada vez que haya colocado
un valor incorrecto en el dbedit y quiera cancelar)

Alguien me puede ayudar a salir de esta situacion.
Desde ya muchas gracias. Christian
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Validar datos

Publicado por BigLuis (463 intervenciones) el 28/03/2003 21:52:34
Mira los eventos OnGetText y OnSetText de TField. Tambien puedes utilizar Beforepost y AfterPost de TTable
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar datos

Publicado por Christian (41 intervenciones) el 29/03/2003 18:16:11
En un principio ya habia descartado estos eventos porque me parecia que no me servian pero los voy a mirar con mas atencion.
Muchas gracias Luis. Christian
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar datos

Publicado por Ernesto D'Spirito (706 intervenciones) el 29/03/2003 20:45:27
Usa el evento OnValidate de los campos para validarlos individualmente. Si el nuevo valor del campo es válido, no haces nada, y si no lo es, entonces lanza una excepcion:

procedure TForm1.ClienteNombreValidate(Sender: TField);
begin
if Trim(ClienteNombre.AsString) = '' then
Exception.Raise('El nombre no puede quedar en blanco');
end;

Ya que estamos, si deseas validar a nivel de registro, puedes usar el evento BeforePost del dataset (tabla o consulta). Si los datos son válidos, no haces nada, y si son inválidos, entonces llama al procedimiento Abort.

Espero que te sirva.

Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar