Lectura del teclado con convinación de teclas

Post Reply
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Lectura del teclado con convinación de teclas

Post by jgayoso »

A la comunidad FiveLinux, tengo el siguiente problema:

Tengo un teclado NCR que tiene teclas especiales, el proveedor me indica que esas teclas funcionan igual como cuando uno preciona Control + A, Alt + B, pero con inkey() siempre me entrega un valor 65453, para cualquier tecla especial.

Local fpx:=0, lModal:=.T., oGet, cPaso:=' '
DEFINE DIALOG oDlg TITLE " " SIZE 350, 60
@2,1 say hb_strtoutf8(padc(alltrim(cMsg),50)) OF oDlg SIZE 330,nAltoLetra
@10,4 GET oGet VAR cPaso OF oDlg SIZE 70, nGetAltoLetra PICTURE "X" UPDATE
oGet:bKeyDown = { | nKey | If( nKey <> 0, ( nLastkey:=nKey, fpx:= nKey, lModal:=.F., oDlg:End() ),) } //Esc
ACTIVATE DIALOG oDlg CENTER

En la variable nLastKey me entrega 65453

¿Como puedo hacer para saber que convinación de tecla se preciono?


Estoy trabajando con FiveLinux y Harbourd para Linux, Suse Linux Interprise 11.1

Desde ya se agradece y quedo a la espera de una posible solución.

Jorge Gayoso
Santiago de Chile
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: Lectura del teclado con convinación de teclas

Post by jgayoso »

Ya solucione mi problema, modificando una linea y agregando una función:

oGet:bKeyDown = { | nKey | iif( .not. fTeclaCombinacion(@nkey,@nTeclaCombinacion) .and. nkey > 0, (msgalert(str(nTeclaCombinacion)+' '+str(nkey)), nLastkey:=nKey, fpx:= nKey, lModal:=.F., oDlg:End() ), ) }

Function fTeclaCombinacion(nkey,nTeclaCombinacion)
Local lRetorno:=.F.

if ascan({K_HOME,K_END,K_PAGEUP,K_PAGEDOWN,K_UP,K_DOWN,K_TAB,K_LEFT,K_RIGHT,K_DEL,K_BS,K_SHIFT,K_RSHIFT,K_CTRL,K_UPPER,K_KEYPAD0,K_ALT,K_ALT_GR,K_F_ESPECIAL},nkey)>0
nTeclaCombinacion:=nkey
nkey:=0
lRetorno:=.F.
endif
Return lRetorno
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Lectura del teclado con convinación de teclas

Post by Antonio Linares »

Jorge,

Gracias por compartirlo :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply