14 de marzo de 2016

Evento KeyPress

Artículo original: KeyPress Event
http://www.foxpert.com/KnowlBits_200606_2.htm
Autor: Christof Wollenhaupt
Traducido por: Ana María Bisbé


Las teclas especiales como Alt,Ctrl y Mayúsculas tienen este orden de prioridad. Cuando un usuario presiona una combinación de estas teclas, la más prioritaria determina la clave. Por ejemplo, si se presiona la tecla ALT con Mayúsculas, la clave es la misma que al presionar solamente ALT. Si el usuario presiona Mayúsculas y Ctrl, la clave devuelve la combinación de Ctrl. Solamente cuando se presiona únicamente la tecla Mayúsculas, obtendrá la combinación de clave para Mayúsculas. La tabla siguiente muestra el ejemplo para la tecla U:

nKeyCode nShiftAltCtrl
U 117 0
Mayúsculas+U 85 1
Ctrl+U 21 2
Alt+U 22 4
Mayúsculas+Ctrl+U 21 3
Mayúsculas+Alt+U 22 5
Ctrl+Alt+U 22 6
Mayúsculas+Alt+Ctrl+U 22 7 (trabaja intermitentemente en mi portátil.)

La excepción sobre esta regla es la combinación Mayúsculas+ALT en teclados que soportan la combinación de tecla AltGr. Las teclas Mayúsculas+ALT y AltGr+tecla disparan el evento KeyPress con nShiftAltCtrl = 0 y el código normal de la tecla.

Con combinaciones ALT, el código de tecla se corresponde a la localización física en un teclado de EEUU. Al presionar la tecla entre la T y la U en un teclado alemán devuelve un código de tecla igual a 122, mientras que devuelve 121 con un teclado de EEUU. Sin embargo, con la tecla ALT el código es 21 en ambos casos.

Este es el mismo efecto que ocurre con ON KEY LABEL y con cierta combinación de teclas al control hijo como con ALT + guión (ALT+-) en un teclado de EEUU requiere que los usuarios con teclado alemán presionen ALT+ß

Algunas teclas especiales disparan también el evento KeyPress:

nKeyCode nShiftAltCtrl
BloqMayús+Mayúsculas+Alt 58 6 (no fiable)
57 5 (no fiable)
Ctrl+Win+Alt 91 7
Mayúsculas+Alt+0 11 5

Algunos códigos son idénticos. Sin embargo, esto no es necesariamente aplicable a todas las combinaciones de teclas.

nKeyCode nShiftAltCtrl
Ctrl++ / Ctrl+Pos1 29 2
Ctrl+H / Ctrl+Del 127 2
Ctrl+W / Ctrl+End 23 2
Ctrl+Flecha Izquierda / Ctrl+Z 26 2
Ctrl+Flecha Derecha / Ctrl+B 2 2
Alt+0 / Alt+R 19 4
Mayúsculas+Alt+0 19 5
Ctrl+J / Ctrl+Enter 10 3
Mayúsculas+Ctrl+J 10 3
Mayúsculas+Z / Mayúsculas+F7 90 1
Mayúsculas+T / Mayúsculas+F1 84 1
Mayúsculas+U / Mayúsculas+F2 85 1
Mayúsculas+W / Mayúsculas+F4 87 1
Mayúsculas+Y / Mayúsculas+F6 89 1
Mayúsculas+X / Mayúsculas+F5 88 1
Mayúsculas+V / Mayúsculas+F3 86 1

La combinación siguiente no trabaja en unión de Ctrl o Ctrl+Mayúsculas. La primera etiqueta se corresponde con un teclado en alemán y la segunda a un teclado de EEUU.

Alemán Estados Unidos
^ '
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
ß -
' =
Ö ;
Ä '
, ,
. .
- /

Mayúsculas+F10 es la tecla contextual para el menú y por tanto devuelve nKeyCode=93 y nShiftAltCtrl=1.

Con la tecla BloqMayús, los códigos se invierten.


1 comentario :

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.