Teclas Especiales


Aqui se muestran los valores de algunas teclas que no estan comprendidas dentro del codigo ASCII (American Standard Code for Information Interchange) ó Codigo Estandar Americano para Intercambio de Informacion), tambien se le llama Codigo ampliado


Codigo
Tecla
3
NULL (caracter nulo)
15
Shift Tab
16 a 25
Alt Q / W / E / R / T / Y / U / I / O/ P
30 a 38
Alt A / S / D / F / G / H / I / J / K / L
44 a 50
Alt Z / X / C / V / B / N / M
59 a 68
Teclas F1 a F10
71
Inicio (Home)
72
Cursor Arriba*
73
RePág (PgUp)
75
Cursor a la izquierda*
77
Cursor a la derecha*
79
Fin (end)
80
Cursor hacia abajo*
81
AvPág (PgDn)
82
Insert (ins)
83
Supr (Del)
84 a 93
Shift F1 a Shift F10
94 a 103
Ctrl F1 a Ctrl F10
104 a 113
Alt F1 a Alt F10
114
Ctrl ImprPant (Ctrl PrtSc)
115
Ctrl flecha izquierda
116
Ctrl Flecha derecha
117
Ctrl Fin
118
Ctrl AvPág
119
Ctrl Inicio
120 a 131
Alt 1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 0 / - / =
132
Ctrl RePág

* Flechas del Cursor

Estas teclas se pueden considerar tambien como teclas dobles, debido a que antes de que guarden el valor de la tecla especial, llevan un caracter nulo (#0), necesitan leerse dos veces para definir que tecla fue presionada, por ejemplo

program teclas;
uses crt;

var
    op:char

begin
clrscr;
      write('Pulse una tecla');
      op:=readkey;
      write('La tecla fue: ',op);
end.

Si la tecla presionada fue alguna de las arriba mencionadas, no se vera el valor de ninguna tecla puesto que solo se leyo una vez (op:=readkey) y op guardo un caracter nulo (#0)

Una forma de solucionar esto es colocando op dentro de un repeat, mas o menos de la siguiente forma

begin
clrscr;
      write('Pulse una tecla');
      repeat
         op:=readkey;
      write('La tecla fue: ',op);
until op=#27;
end.

Colocandolo asi, si se presiona una tecla especial, se leera dos veces y op guardara el valor de la tecla, pero se escribira dos veces la sentencia write('La tecla fue: ',op), una vez cuando op valga #0 y la segunda vez ya con el valor de la tecla, esto se podria solucionar colocando

if op=#0 then
      op:=readkey

dentro del ciclo, despues de la primera asignacion de op, con esto , si fue una tecla especial nos aseguramos que op se lea dos veces antes de escribir el valor de op.

Cuando trabajes con teclas especiales, es recomendable que las teclas especiales las manejes como constantes, asi simplificaras la lectura del programa, para ti como para los que lo analizen, este codigo por ejemplo:

program teclas;
uses crt;

const
    escape=#27
    enter=#13
    arriba=#73
    abajo=#81
    alt_a=#30
    f1=#59

var
    op:char;

begin
crlscr;
    repeat
       op:=readkey;
    until op in [enter, escape, arriba, abajo, alt_a]
end.

Es mas legible que este otro

program teclas;
uses crt;

var
    op:char;

begin
crlscr;
    repeat
       op:=readkey;
    until op in [#27,#13,#73,#81,#30,#59]
end.


Regresar


inicio
Si llegaste a esta pagina desde un buscador
haz click aqui para ir a la pagina principal