FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Double Enter pressed
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
Double Enter pressed
Posted: Mon May 02, 2011 08:39 AM
Hi,
I want to handle the "double enter" event in a valid function.
Like a double click of the mouse in a get field.

#include "fivewin.ch"

FUNCTION MAIN()

LOCAL oDlg
LOCAL oGet1 , cGet1 := SPACE(10)
LOCAL oGet2 , cGet2 := SPACE(10)

DEFINE DIALOG oDlg

@ 1 , 1 GET oGet1 VAR cGet1 VALID myfunction()

@ 2 , 1 GET oGet2 VAR cGet2

ACTIVATE DIALOG oDlg

RETURN NIL

FUNCTION MYFUNCTION( )

LOCAL nSecKey

IF GetKeyState( VK_RETURN )

IF a second press of enter key is performed

MsgAlert( "Double enter pressed" )

ELSE

MsgAlert( "Enter is pressed only once" )

ENDIF


ENDIF

RETURN .T.

What have I to write in the bold line?
Marco
Marco Boschi
info@marcoboschi.it
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: Double Enter pressed
Posted: Mon May 02, 2011 10:21 AM
This is not perfect but it's a starting point:

Code (fw): Select all Collapse
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg

    LOCAL oGet1 , cGet1 := SPACE(10)
    LOCAL oGet2 , cGet2 := SPACE(10)

    DEFINE DIALOG oDlg

    @ 1, 1 GET oGet1 VAR cGet1 VALID .F.

    oGet1:bKeyDown = { | nKey | MyFunction( nKey ) }

    @ 2, 1 GET oGet2 VAR cGet2

    ACTIVATE DIALOG oDlg;
             CENTER

    RETURN NIL


STATIC FUNCTION MYFUNCTION( nKey )

    STATIC nSec

    IF nKey = VK_RETURN
        IF nSec = NIL
            nSec = SECONDS()
        ELSE
            IF SECONDS() - nSec <= 0.2
                nSec = NIL

                ? "Double enter pressed"
            ELSE
                nSec = SECONDS()
            ENDIF
        ENDIF
    ELSE
        nSec = NIL
    ENDIF

    RETURN NIL


EMG
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
Re: Double Enter pressed
Posted: Mon May 02, 2011 02:19 PM

Many thanks Enrico

Marco Boschi
info@marcoboschi.it

Continue the discussion