In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Atajos

Foro de Xailer profesional en español
Responder
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

Atajos

Mensaje por miguel »

Hola:
En un formulario, como se puede detectar si se ha pulsado alguna
combinación de teclas tales como: ALT+F?, ALT+ENTER, CTRL+ENTER, ....
ALT+???, CTRL+????, ETC.. Y que códigos tendrí­an, asi como los donde
están los #defines.
¿el evento OnKeyDown, OnKeyUP?. En estos eventos gracias al depurador
veo que captura individualmente cada una de la teclas y no la combinación.
Saludos. Miguel A. Torrellas
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Atajos

Mensaje por jlalin »

Miguel,
pon este código de ejemplo en el evento OnKeyDown del formulario:
//---
IF lGetKeyState( VK_CONTROL )
DO CASE
CASE nKey == VK_F2
MsgInfo( "Ctrl+F2" )
CASE nKey == Asc( "X" )
MsgInfo( "Ctrl+X" )
ENDCASE
ELSE
DO CASE
CASE nKey == VK_F2
MsgInfo( "F2" )
CASE nKey == Asc( "X" )
MsgInfo( "X" )
ENDCASE
ENDIF
//---
Saludos,
José Lalí­n
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

Atajos

Mensaje por miguel »

Gracias por tu respuesta. Perfecto, con esto ya tenemos controlado todo
el teclado.
He buscado la documentación de esta función en Xailer y en MSDN y no la
encuentro.
Saludos. Miguel A. Torrellas
José Lalí­n escribió:
>
> Miguel,
>
> pon este código de ejemplo en el evento OnKeyDown del formulario:
>
> //---
> IF lGetKeyState( VK_CONTROL )
> DO CASE
> CASE nKey == VK_F2
> MsgInfo( "Ctrl+F2" )
> CASE nKey == Asc( "X" )
> MsgInfo( "Ctrl+X" )
> ENDCASE
> ELSE
> DO CASE
> CASE nKey == VK_F2
> MsgInfo( "F2" )
> CASE nKey == Asc( "X" )
> MsgInfo( "X" )
> ENDCASE
> ENDIF
> //---
>
> Saludos,
> José Lalí­n
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Atajos

Mensaje por jlalin »

Miguel,
> He buscado la documentación de esta función en Xailer y en MSDN y no la
> encuentro.
Este evento lo puedes ver en TForm y en sus clases ancestras.
Selecciona la pestaña "Eventos" en el inspector de propiedades, selecciona
el evento OnKeyDown y pulsa Shift+F1, te llevará directamente a la ayuda
del evento o propiedad.
Saludos,
José Lalí­n
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

Atajos

Mensaje por miguel »

Gracias Jose:
Ahora veo que no me explique bien, me refiero a la función lGetKeystate()
Saludos. Miguel A. Torrellas
José Lalí­n escribió:
>
> Miguel,
>
>> He buscado la documentación de esta función en Xailer y en MSDN y no
>> la encuentro.
>
> Este evento lo puedes ver en TForm y en sus clases ancestras.
>
> Selecciona la pestaña "Eventos" en el inspector de propiedades,
> selecciona el evento OnKeyDown y pulsa Shift+F1, te llevará directamente
> a la ayuda del evento o propiedad.
>
> Saludos,
> José Lalí­n
Responder