Asociar teclas de función a funciones específicas

Post Reply
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Asociar teclas de función a funciones específicas

Post 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
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
mag071
Posts: 139
Joined: Thu Feb 02, 2006 12:09 pm
Location: Venezuela
Contact:

Asociar teclas de función a funciones específicas

Post 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
Mario Antonio González Osal
Venezuela
m a g 0 7 1 @ g m a i l. c o m
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

HOla,,, Debe funcionar

Post by Willi Quintana »

Hola Sr...
debe funcionar,, yo oo hago asi

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


Salu2
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Gracias

Post 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
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post 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]
Post Reply