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
Lectura del teclado con convinación de teclas
Re: Lectura del teclado con convinación de teclas
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
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
- 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
Jorge,
Gracias por compartirlo
Gracias por compartirlo