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.
como uso el keypress
ResponderBorrar