FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Funcion para validar campos.
Buenas delfos, tengo esta función que hice hace unos días para validar los campos obligando al usuario a que los ingrese antes de hacer el Grabar. Lo que hago es pasar el form como parámetro, antes de esto configuro los edits que son obligatorios con el tag=1, en el caso de que sean null , tomo el caption del componente y los muestro en una función mensaje. El problema ocurre que muchas veces el recorrido de los componentes no es en el orden esperado y muestra el mensaje de un edit que esta mas bajo que otro. por ejemplo tengo dos edits con tag=1 primero esta Nombre y luego Apellido dejos los dos en blanco y el primero que muestra el mensaje es el de Apellido. El tab order de los componentes esta bien y ademas en la clase están declarados en el orden de los tabs. Digamos que no se que patrón utiliza para hacer el recorrido. ¿Alguna sugerencia?
Gracias por leerme.
|
#2
|
||||
|
||||
No conozco los componentes JfDBEdit, así que no sé quién se supone que es ILabel. Con los DBEdit normales, y supongo que con estos también, puedes acceder al componente TField asociado al Edit y usar entonces la propiedad DisplayName para acceder al nombre del campo en cuestión y así poder presentarlo en tu mensaje de error.
// Saludos |
#3
|
||||
|
||||
Cita:
Slds. |
#4
|
||||
|
||||
He estado haciendo algunas pruebas y tienes razón. El indice de ComponentCount no respeta ni el Taborder ni la declarión en el .PAS
Según lo que podido probar, el orden va dado a la declaración de los objetos en el .DFM (Delphi Form) de la unidad. Quizás tendrás que editar manualmente el archivo y reordenar la declaración de los componentes. |
#5
|
||||
|
||||
Tienes razón, no había leido bien.
No estoy seguro, pero el error posiblemente se deba a que Components refleje no el orden visual sino el orden en que fueron insertados los componentes en el formulario, el cual no cambia al cambiar el Tab Order. ¿Has probado usar Controls en lugar de Components? // Saludos |
#6
|
||||
|
||||
Otra idea que se me ocurre para que no tengas que hacer eso en cada fromulario que crées o que modifiques podría ser.
Paso1. Recorrer todos los componentes y guardarte el nombre de aquellos y su taborder Paso2. Recorrer los componenetes elegidos por orden del Taborder guardado Ahora mismo no veo claro el como hacerlo, pero el concepto no es complicado y puede ser una solución definitiva para todos tus forms. |
#7
|
||||
|
||||
Hola.
Exactamente roman, las propiedades Components y Controls están dispuestas por el órden cronológico de inserción. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
||||
|
||||
Cita:
Slds. |
#9
|
||||
|
||||
Si quieres te paso un par de componentes que tengo por aquí y que hice hace bastante tiempo.
TAutoedit (TDBEdit). TAutotable (TTable) TAutoChackBox (TDbCheckbox) Tiene varias peculiaridades que te pueden resultar útiles. Hace NextDialog al hacer Intro. Cambia de color al recibir el foco. Cuando su DataSet trata de hacer Post o Insert y tiene la propiedad Nulable a FALSE, toma el foco y se pone de Color Rojo. Es un componente muy simple pero muy utíl, yo lo gasto mucho. |
#10
|
||||
|
||||
Cita:
Pero esta rutina parece funcionar:
// Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda para validar un Dato de Tipo Boleano en funcion | microbiano | Varios | 3 | 05-05-2012 08:16:39 |
Rutina para Validar Campos | oscarac | OOP | 14 | 07-05-2011 10:16:18 |
validar campos.... | chileno | Conexión con bases de datos | 2 | 27-05-2006 19:27:30 |
Función para validar datos numéricos simples en un Edit de INTRAWEB | atirado | Varios | 0 | 14-05-2004 19:27:54 |
Funcion para validar IP | Mauricio Correa | Internet | 7 | 01-10-2003 15:04:25 |
|