FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Conocer origen del foco
Hola. No sabía muy bien como titular la pregunta.
Tengo un componente propio heredado de un edit. Según el valor de una propiedad que le he añadido, al recibir el foco y ejececutarse el DoEnter, si esa propiedad está a false, entonces ejecuta: PostMessage((Owner as TWinControl).Handle, WM_NEXTDLGCTL, 0, 0); para abandonar el campo. La cuestión es que si voy hacia atrás recorriendo los controles, con Shift+Tab, cuando llega a este campo, no me deja seguir hacia atrás. ¿Existe alguna posibilidad de saber si venía hacia atrás? ya que en ese caso ejecutaría el PostMessage((Owner as TWinControl).Handle, WM_NEXTDLGCTL, -1, 0); para continuar hacia atrás al recibir el foco. Gracias por la ayuda. Un saludo. |
#2
|
||||
|
||||
¡Hola!
Me parece que deseas implementar el mismo uso que tiene la propiedad nativa TabStop. ¿La conoces? ¿Qué diferencia de funcionalidad tendría la nueva propiedad que le has definido al componente? Saludos. Al González. |
#3
|
|||
|
|||
Hola. Gracias por la respuesta, pero no tiene nada que ver con el TabStop. Si yo pongo el TabStop a false, no entra en los saltos de la tabulación, pero si podría con el ratón entrar en el campo y eso es lo que no quiero.
Básicamente es más parecido a la propiedad enabled, de forma que si deshabilito el campo con esa propiedad, ya no me deja entrar. El tema está en que no puedo utilizar la propiedad Enabled porque me salta el campo siguiente. Te pongo un ejemplo y quizas puedas darme una solución mejor: - Pongo tres edits en pantalla en secuencia con el TabStop a true. - El segundo edit lo pongo enabled:=false - En el primer edit, programo el evento OnExit de forma que si el valor del text vale, por ejemplo, "S", entonces que habilite el segundo edit, y si no que se quede deshabilitado. - Ejecuta la aplicación y ponte en el primer edit. Escribe "S" y luego dale al tabulador. En lugar de irse al segundo edit, que he habilitado en el onexit al comprobar el valor del campo, se va al tercer edit, cuando el segundo está habilitado, pero se lo salta. Este es el problema que quiero solucionar. A ver si me puedes dar una solución mejor. Lo que yo he hecho es poner una propiedad "Accesible" que se pone a true o false, y en el DoEnter si la propiedad es false, entonces mando el foco al siguiente campo con el PostMessage. El único problema que tiene esta solución es que si voy para atrás (shift+tab) cuando llego a ese campo no accesible, como no se si iba hacia adelante o hacia atrás, no se si debo ejecutar el PostMessage con 0 o con 1 como parámetro para ir adelante o atrás. Y ese era el objeto de la pregunta. Un saludo |
#4
|
||||
|
||||
Cita:
Si te das cuenta con eso no necesitas codificar nada en los eventos OnExit o OnEnter. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#5
|
|||
|
|||
Hola.
No es eso. El taborder está bien. Si reproduces el ejemplo verás que no va por ahí la consulta. A ver, el tema es el siguiente: - A partir del valor de un campo edit, se trata de habilitar o deshabilitar el siguiente edit en la secuencia. - Si este primer edit tiene un valor, por ejemplo, "S" entonces se habilita el segundo edit, pero si no permanece deshabilitado. - El problema es que al comprobar el valor en el OnExit, y habilitar el segundo edit, este no recibe el foco, a pesar de estar habilitado. Un saludo. |
#6
|
||||
|
||||
Cita:
Lo que puedes hacer es no usar el evento OnExit de tu primer Edit sino mas bien el evento OnChange del primer Edit y colocar (segun lo que mencionas) éste codigo: . Con eso ya solucionas tu problema. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Origen de datos | vascomulc | Conexión con bases de datos | 1 | 19-03-2008 22:23:07 |
Origen del and per se and (&) | marcoszorrilla | La Taberna | 0 | 17-01-2007 22:35:12 |
Origen de los jefes | Casimiro Notevi | La Taberna | 9 | 11-07-2006 22:26:12 |
Origen de un Correo | AMG | Internet | 0 | 14-05-2003 23:02:45 |
|