FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Como hacer que el cursor vaya a un campo de un grid
Hola compañeros.
Necesito hacer un proceso que me parece es mas complicado de lo que inicialmente creia. Tengo un DBGrid que me muestra los campos de un dataset. Este dataset tiene dos valores DIVENDRES y DIUMENGE que solo adminten un caracter, quiero que sea S o N, así en mayusculas, en el dataset hago lo siguiente yme lo cambia:
Pero cuando le coloco un valor que no sea s, n, S, N, me lanza el mensaje de valor no válido, pero y aquí viene el kit de la cuestión, no consigo borrar este valor y que el foco vuelva al campo erroneo. He probado con un bookmark y no me guarda la linea, he probado con focuscontrol y pasa de mí. Alguien sabe como puedo solucionarlo? Tambien me gustaría que si me dejo el campo vacio, me obligara a llenarlo con un valor S o N, moviendo el foco a este campo. Buenas tardes/noches. Josep |
#2
|
||||
|
||||
¿Has probado hacer la validación en el evento OnValidate del TField?
// Saludos |
#3
|
||||
|
||||
Gracias omán.
Si, fue lo primero que intente. Lo que no consgo es volver el foco al campo erroneo para poder cambiarlo. Saludos |
#4
|
||||
|
||||
Si lees la ayuda del evento OnValidate, verás que para rechazar un valor debes lanzar una excepción. Al hacer esto, el foco no debería perderse puesto que, de hecho, la validación se hace antes de que se abandone el control.
En tu caso, podrías hacer así el evento OnValidate de tu campo:
O sea, en lugar de un simple ShowMessage, lanzas una excepción. // Saludos |
#5
|
||||
|
||||
Gracias de nuevo.
Tampoco me funciona, ahora me lanza un error stack overflow desde el ide y me cierra la aplicacion desde el exe Saludos |
#6
|
||||
|
||||
Mmmm. Sí, supongo. Es una tontería mía por querer optimizar sin pensarlo bien.
Intenta así:
En el evento OnValidate, no en el OnChange. // Saludos |
#7
|
||||
|
||||
Hola jafera.
Y si querés convertir a mayúsculas el valor antes de guardarlo, podés usar la línea (que copio del código de roman) en el evento BeforePost del TDataSet.
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
||||
|
||||
Gracias de nuevo
Ahora ya no lanza el error stack overflow, me avisa de que el valor no es valido, pero si pongo un valor por ejemplo 'a' no e lo borra, se queda el cursor en el campo pero con el valor no válido. Si pongo el valor 's' no hace el uppercase para convertirlo a 'S' Saludos |
#9
|
||||
|
||||
Cita:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#10
|
||||
|
||||
Cita:
Saludos |
#11
|
||||
|
||||
Hola jafera.
Parece que yo también optimicé sin pensar mucho... Debería haber sido:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#12
|
||||
|
||||
Este si funciona.
Problema solucionado. Gracias mil Josep |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como pintar una fila de un grid al hacer click diractamente | flystar | Varios | 2 | 31-07-2010 22:58:13 |
Cómo mostrar solo la hora de un campo DateTime en un grid | FerCastro | SQL | 2 | 03-09-2008 17:15:35 |
cursor por el grid | sargento elias | Conexión con bases de datos | 2 | 23-04-2008 11:56:55 |
como visualizar campo memo en grid? | Alfredo | Conexión con bases de datos | 3 | 17-01-2005 13:38:21 |
Como hacer invisible columna de Grid? | txuseibar | OOP | 4 | 10-10-2003 19:04:15 |
|