HABILITATECLADO

Sinopsis
HABILITATECLADO tecla_pulsada
(HABILITATECLADO tecla_pulsada tecla_liberada)
KEYBOARDON tecla_pulsada
(KEYBOARDON tecla_pulsada tecla_liberada)
Descripción

Empieza a capturar los eventos del teclado, enviándolos al tecla_pulada y tecla_librada. Cuando se pulsa una tecla, se ejecuta tecla_pulsada. Cuando se libra una tecla, se ejecuta tecla_librada. Para obtener el carácter afectado, ejecutas a LEETECLA desde tecla_pulsada o tecla_librada.

tecla_pulsada y tecla_librada puede ser o una palabra que es el nombre de un procedimiento o una lista de instrucciones.

Nota que la «Pantalla» debe tener foco (no la Caja de Entrada del Centro de Comandos) para capturar los eventos del teclado. Puedes lograr esto si ejecutaras PONFOCO [FMSLogo] después de ejecutar HABILITATECLADO.

FMSLogo siempre ejecuta tecla_pulsada y tecla_librada en modo EXCLUSIVO.

Para razones históricos, un distinto conjunto de teclas son capturadas cuando HABILITATECLADO es dado un solo argumento y cuando es dado tecla_pulsada y tecla_liberada. Cuando solo un tecla_pulsada argumento es dado, las teclas son capturadas como caracteres y no eventos de pulsada de rigor. Eso quiere decir que a minúscula tiene un valor distinto que A mayúscula, aunque se presionan la misma tecla. A causa de esto, un programa que solo busca ASCII "a no funciona cuando el Bloq Mayús es en efecto. Esto también quiere decir que cuando solo le dieres tecla_pulsada a HABILITATECLADO, ignora a los pulsaciones de teclas que no se representan con caracteres textuales. Esto incluye ignorar a las teclas de dirección, las de función, las de Mayús, las de Ctrl, y otras.

Por otro lado, cuando HABILITATECLADO tiene dos argumentos, tecla_pulsada y tecla_liberada, captura casi todos los eventos del teclado, incluido eventos por las teclas de dirección, las de función, las de Mayús, y las de Ctrl. Adicionalmente, cada presión de tecla genera una ejecución diferente de tecla_pulsada. Por lo tanto, un A mayúscula puede generar los eventos del teclado siguiente: la tecla Mayús presionada, seguido por la tecla A presionada, seguido por la tecla A liberada, seguido por la tecla Mayús liberada.

Ejemplo

Usando HABILITATECLADO con un solo argumento para escribir caracteres en cuanto están presionados:

HABILITATECLADO [ESCRIBE CAR LEETECLA]
PANTALLAGRAFICA
PONFOCO [FMSLogo]

Presiona la tecla «A» del teclado
a
Presiona la tecla «B» del teclado
b

PANTALLAPARTIDA
INHABILITATECLADO

Usando HABILITATECLADO con dos argumentos para hacer cosas solo cuando teclas están presionadas:

PARA TECLAPRESIONADA
  SI LEETECLA = ASCII "O [ OCULTATORTUGA ]
  SI LEETECLA = ASCII "F [ SI COLORFONDO <> 1 [PONCOLORFONDO 1] ]
FIN

PARA TECLALIBERADA
  SI LEETECLA = ASCII "O [ MUESTRATORTUGA  ]
  SI LEETECLA = ASCII "F [ PONCOLORFONDO 7 ]
FIN

(HABILITATECLADO [TECLAPRESIONADA] [TECLALIBERADA])
PANTALLAGRAFICA

Mientras presionas la tecla «O», se oculta la tortuga.
Mientras presionas la tecla «F», se pinta la pantalla en color azul.

PANTALLAPARTIDA
INHABILITATECLADO


SourceForge.net Logo