Page 1 of 1

Asociar teclas de función a funciones específicas

Posted: Tue May 09, 2006 5:31 pm
by jose_murugosa
Colegas, espero puedan ayudarme en esta dificultad.... :oops:

Necesito asociar a los botones de una dialog que manipula los registros
de una base de datos (botones: nuevo, modificar, eliminar, anterior, siguiente, ultimo, primero, etc) teclas de función de modo que cuando se presiona por ejemplo la tecla F7 equivalga a presionar el botón eliminar.

Lo hice así:
.....
#include "inkey.ch"
......

SetKey(K_F2 , {|| Nuevo( oDbf, oBtn, oDlg, oPage:aDialogs[1], ;
oSay, oGet, cNom_Dbf, cAlias ) })
SetKey(K_F8 , {|| Modificar(oPage:aDialogs[1], oBtn) })
SetKey(K_F7 , {|| Borrec( oDbf, oBtn, oDlg, oPage:aDialogs[1], ;
oSay ) }) .......

DEFINE DIALOG .......
.....
ACTIVATE DIALOG .......
SetKey(K_F2 )
SetKey(K_F8 )
SetKey(K_F7 )
......
RETURN NIL

Pero al presionar las teclas de función no pasa nada, aunque con los botones las funciones andan perfecto.

que está mal?:shock:
Hay una forma mejor o más correcta de hacerlo? :roll:

Gracias desde ya por la ayuda que me puedan brindar. :D

Asociar teclas de función a funciones específicas

Posted: Tue May 09, 2006 7:29 pm
by mag071
Oye Jose,

yo lo hago asi como son botones los que quieres activar yo uso

CASE nKey==VK_F2
o123:SetFocus()
o123:Click()

siendo o123

REDEFINE BUTTON o123 ID 123 OF oDlgLot ;
PROMPT "&Buscar Ticket" Action (::BuscarTicket(::oComboSigno))

espero me entiendas y te funcione

Suerte

HOla,,, Debe funcionar

Posted: Wed May 10, 2006 3:22 am
by Willi Quintana
Hola Sr...
debe funcionar,, yo oo hago asi

SetKey(VK_F12,{||AbreCajonDinero(aSerieNumero)})


Salu2

Gracias

Posted: Wed May 10, 2006 3:39 am
by jose_murugosa
Gracias amigos por su ayuda, verdaderamente la mayoría de las veces este foro me saca de un apuro.

El error, (que se desprende de vuestros amables mensajes) es que estaba escribiendo mal la variable k_f2 en lugar de vk_f2 y así susesivamente, al reemplazar esto ya me anda, aunque tengo ahora unos errores que creo que deriban del caracter local de las variables que utilizo en el programa, pero veré como lo soluciono.

Lo importante: MUCHAS GRACIAS A TODOS!!!!! :D

Posted: Wed May 10, 2006 6:14 am
by Maurizio
I use this

Maurizio

//---------------------------------
DEFINE BUTTON oBtn RESOURCE "TEST" OF oBar ACTION Msginfo("PRESS F2")
oBtn[1]:cargo := VK_F2
oDlg:bKeyDown = { | nKey | CheckKey(nKey,oBar)}
//----------------------------------
Function CheckKey(nKey,oBar)
Local nX,nY
IF nKey >= VK_F2 .AND. nKey <= VK_F9
IF oBar:lActive
FOR ny := 1 TO len(oBar:aControls)
IF oBar:aControls[ny]:cargo # nil .AND. oBar:aControls[ny]:lActive
if oBar:aControls[nY]:cargo == nKey
oBar:setfocus()
oBar:aControls[nY]:Click()
endif
ENDIF
NEXT
ENDIF
ENDIF
Return nil



[/code]