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.

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