Colegas, espero puedan ayudarme en esta dificultad....
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?
Gracias desde ya por la ayuda que me puedan brindar.
Asociar teclas de función a funciones específicas
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Asociar teclas de función a funciones específicas
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
Asociar teclas de función a funciones específicas
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
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
Venezuela
m a g 0 7 1 @ g m a i l. c o m
- Willi Quintana
- Posts: 859
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
HOla,,, Debe funcionar
Hola Sr...
debe funcionar,, yo oo hago asi
SetKey(VK_F12,{||AbreCajonDinero(aSerieNumero)})
Salu2
debe funcionar,, yo oo hago asi
SetKey(VK_F12,{||AbreCajonDinero(aSerieNumero)})
Salu2
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Gracias
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!!!!!
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!!!!!
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
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]
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]