Control del teclado

Como decía mi abuela la gratitud ante todo, deseo primeramente agradecer por el solo echo de leer mi pregunta.
Quisiera saber si en Visual Foxpro se puede desactivar teclas. La razón para esto es que no quiero que cuando
este en un textbox determinado no permita desplazarse hacia el siguiente o anterior textbox con presionar la tecla TAB,
Backspace, flecha izquierda, etc., sino que se quede en ese textbox hasta que pulse enter.
Usando lastkey() tuve un éxito relativo; gráfico la situación. Estando en el textbox3 presiono flecha izquierda como para volver al texbox2
y no me lo permite, hasta allí todo fenómeno, pero cuando quiero seleccionar el textbox2 con el mouse no me deja queda el cursor en el textbox3.
Bueno cualquier ayuda sera bien recibida porque con mi compañero de estudio esto nos esta sacando canas verdes.
Respuesta
1
Prueba utilizando la función on key label, ejemplo
on key label Z wait window "Z"
Pruébalas en la ventana de comando, presiona la tecla "z" y te mostrará en un wait window "Z"
Recuerda que cuando hacas esto tiens también que desactivar esta opción:
On key label Z
Cuando llegue el foco a este control yoharia lago parecido a:
ON KEY LABEL RIGHTARROW wait timeout 0.1
Hace que se detenga por menos de un segundo, también lo haría para el TAB(tabulador), en caso del enter haría algo así:
On key label enter thisform. Siguientecontrol. Setfocus()
Y en el lostfocus colocaría las instrucciones para quitar estas instrucciones:
On key label enter
On key label rightarrow
Recuerda que también hay flecha a la izquierda, abajo, arriba
Leftarrow, uparrow, dnarrow
Claro que si escribes ON KEY LABEL, eliminas lo que estas funciones deben hacer.
Cuéntame como te fue con la anterior respuesta, creo que se me olvido contarte que las instrucciones de EditBox deben ir en el interactivechage, si tienes más dudas sobre estos temas pregunta
Bye
En el setfocus() del control colocaría la programación de desactivación de teclas
ON KEY LABEL RIGHTARROW wait timeout 0.1
y en el lostfocus()
ON KEY LABEL **recuerda que este te desactiva todos los on key label
Quede preocupado con la respuesta de el paso entre controles no sea satisfactoria. Si es necesario te aclaro las dudas que te quedaron...
Ahora si Bye
Gracias por haber tenido la amabilidad de contestar a la pregunta; probé lo que me sugirió
y sirve. Tuve que cambiar algo en ON KEY LABEL LEFTARROW wait timeout 0.1 por ON KEY LABEL LEFTARROW wait wind "Use el MOUSE" timeout 1.5 ya que aparecía en un costado del formulario "Presione cualquier tecla"; además tuve que ponerlo en el gotfocus() en vez del setfocus() ya que me olvidé de explicar, por desesperado y apurado, claramente todo el contexto pero lo que importa es que ya funciona como queríamos.
Mil gracias por la ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas