FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Trapping key combinations
Posts: 723
Joined: Tue Sep 04, 2007 08:45 AM
Trapping key combinations
Posted: Mon Apr 20, 2009 11:14 AM

How can I trap a key combination like, for example: Control-F2, Control-Y ? I had looked at vkeys.ch with no results. Thank you.

Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM
Re: Trapping key combinations
Posted: Mon Apr 20, 2009 11:31 AM
Code (fw): Select all Collapse
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg

    LOCAL oGet, cVar := SPACE( 30 )

    DEFINE DIALOG oDlg

    @ 1, 1 GET oGet VAR cVar OF oDlg

    oGet:bKeyDown = { | nKey | Tasti( nKey ) }

    @ 3, 1 BUTTON "&Close" OF oDlg ACTION oDlg:End()

    ACTIVATE DIALOG oDlg;
             CENTER

    RETURN NIL


STATIC FUNCTION TASTI( nKey )

    IF nKey = ASC( "H" ) .AND. GETKEYSTATE( VK_CONTROL )
        ? "CTRL-H"
    ENDIF

    IF nKey = ASC( "Z" ) .AND. GETKEYSTATE( VK_CONTROL )
        ? "CTRL-Z"
    ENDIF

    RETURN NIL


EMG
Posts: 723
Joined: Tue Sep 04, 2007 08:45 AM
Re: Trapping key combinations
Posted: Tue Apr 21, 2009 05:38 AM
Thank you Enrico. What I'm trying to do is the following:
Code (fw): Select all Collapse
SETKEY(K_CTRL_Y, {|| SomeStuff()})
Thanks.
Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM
Re: Trapping key combinations
Posted: Tue Apr 21, 2009 08:00 AM
Code (fw): Select all Collapse
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg

    LOCAL cVar := SPACE( 30 )

    SETKEY( VK_F2, { || If( GetKeyState( VK_CONTROL ), MsgInfo( "CTRL-F2" ), ) } )
    SETKEY( VK_F3, { || If( GetKeyState( VK_SHIFT ), MsgInfo( "SHIFT-F3" ), ) } )

    DEFINE DIALOG oDlg

    @ 1, 1 GET cVar OF oDlg

    @ 3, 1 BUTTON "&Close" OF oDlg ACTION oDlg:End()

    ACTIVATE DIALOG oDlg;
             CENTER

    RETURN NIL


EMG
Posts: 723
Joined: Tue Sep 04, 2007 08:45 AM
Re: Trapping key combinations
Posted: Tue Apr 21, 2009 02:10 PM

Enrico:

Thank you very much.

Continue the discussion