Delphi - Validar datos 2

 
Vista:

Validar datos 2

Publicado por Christian (41 intervenciones) el 29/03/2003 20:34:14
Estoy tratando de validar los datos de los
dbedit de tal manera que si hay un dato
no valido ya ingresado y el usuario cliquea
el boton de cancelar no se active el evento
que tiene la validacion porque sino uno queda bloqueado
hasta no eliminar el dato incorrecto del dbedit
Me sugirieron ver los eventos onsettext y ongettext
el problema es que cuando trato de que el dbedit
mantenga el foco si la validacion no es correcta
con focusControl me elimina el contenido(erroneo) que
contenia el dbedit y quiero conservarlo para que
este pueda ser modificado
Gracias por la ayuda que me puedan dar. 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 2

Publicado por Ernesto D'Spirito (706 intervenciones) el 29/03/2003 20:47:09
Ya te respondí abajo, pero por las dudas no la veas, aquí va de nuevo.

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

RE:Validar datos 2

Publicado por Francisco (4 intervenciones) el 30/03/2003 20:53:40
Es preferible dejar al usuario que ingrese todos los datos y recién al FINAL realizar las validaciones. Si no pasa la validación podes llamar al método Cancel de la tabla asociada al DBEdit, en vez de Post, y se cancela en ingreso de datos.
Esto es mucho más fácil de hacer y más modular que lo estás haciendo
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 2

Publicado por Christian (41 intervenciones) el 31/03/2003 20:26:24
Gracias Ernesto y francisco.
Si vi la nota tuya ernesto solo que no queria lanzar excepciones cada vez que el dato fuese erroneo por aquello de que no es bueno estar produciendo excepciones como algo corriente (al menos eso es lo que he leido por ahi) . En cuanto a tu comentario francisco viene bien y ya sabia de esta forma de chequeo pero el problema es que la gente con la que trabajo considera que es mas funcional para el usuario y le hace perder menos tiempo lo que creo que es cierto pero puede ser una solucion aceptable de todas formas.
Gracias a los dos por su tiempo. 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