GLOBAL shift_status

shift_status=0; // Estado de las teclas especiales


En esta variable global predefinida se indica el estado de distintas teclas especiales como pueden ser las teclas [ALT], [CONTROL], etc.

Cada una de estas teclas tiene asignado un código que es el siguiente:

Tecla SHIFT o mayúsculas derecho = 1
Tecla SHIFT o mayúsculas izquierdo = 2
Teclas CONTROL = 4
Teclas ALT y/o ALT GR = 8
Tecla BLOQ DESPL o bloqueo desplazamiento = 16
Tecla BLOQ NUM o de bloque numérico = 32
Tecla BLOQ MAYUS o bloqueo de mayúsculas = 64
Tecla INSERT o inserción = 128

La variable shift_status contendrá la suma de todos los códigos de las teclas que estén pulsadas o activadas.

Por ejemplo, si estuviera pulsada la tecla [ALT] y activada la tecla [BLOQ MAYUS], la variable shift_status tendría el valor 72 (8+64).

Para comprobar si una tecla como [ALT] está pulsada, no se puede comprobar que shift_status sea igual a 8, ya que ésto implicaría que [ALT] es la única tecla especial que está pulsada o activada.

Para realizar esta comprobación correctamente se debería realizar de la siguiente forma:

  IF (shift_status AND 8 == 8)
      // Está pulsada la tecla [ALT] ...
  END


Nota: Normalmente, para comprobar si una tecla está pulsada, se utiliza la función key(). Pero con esta función no se puede determinar si teclas como BLOQ MAYUS están activadas, únicamente si están pulsadas o no.

Existen dos variables que contienen el código de la última tecla que se ha pulsado; scan_code (código scan de la última tecla pulsada) y ascii (código ascii de la última tecla pulsada).


Ver: Datos globales - key() - ascii - scan_code