FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Asociar teclas de funci贸n a funciones espec铆ficas
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM

Asociar teclas de funci贸n a funciones espec铆ficas

Posted: Tue May 09, 2006 05:31 PM

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

"Los errores en programaci贸n, siempre est谩n entre la silla, el teclado y la IA!!"
Posts: 140
Joined: Thu Feb 02, 2006 12:09 PM

Asociar teclas de funci贸n a funciones espec铆ficas

Posted: Tue May 09, 2006 07:29 PM

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
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM

HOla,,, Debe funcionar

Posted: Wed May 10, 2006 03:22 AM

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

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

Salu2

Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM

Gracias

Posted: Wed May 10, 2006 03:39 AM

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

"Los errores en programaci贸n, siempre est谩n entre la silla, el teclado y la IA!!"
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM

Asociar teclas de funci贸n a funciones espec铆ficas

Posted: Wed May 10, 2006 06:14 AM

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]

Continue the discussion