DCPUSHBUTTONXP work using Double Click?
Posted: Mon Apr 16, 2018 6:56 pm
Hello Roger, how can I make the DCPUSHBUTTONXP work using Double Click?
Donnay Software Web Forums
http://donnay-software.com/DONNAY/
Code: Select all
#INCLUDE "dcdialog.CH"
#INCLUDE "appevent.CH"
FUNCTION Main()
LOCAL GetList[0], oButton
@ 0,0 DCPUSHBUTTONXP caption 'Testing' SIZE 20,2 ;
ACTION {||(wtf 'activated')}
DCREAD GUI FIT HANDLER ButtonHandler
RETURN nil
* ----------
PROC appsys ; RETURN
* ----------
STATIC FUNCTION ButtonHandler( nEvent, mp1, mp2, oXbp, oDlg, GetList )
IF Empty(oXbp)
RETURN DCGUI_NONE
ENDIF
IF oXbp:isDerivedFrom('XbpPushButton')
IF nEvent == xbeM_LbClick
DC_ClearEvents()
RETURN DCGUI_IGNORE
ELSEIF nEvent == xbeM_LbDblClick
PostAppEvent(xbeP_Activate,,,oXbp)
RETURN DCGUI_IGNORE
ENDIF
ENDIF
RETURN DCGUI_NONE
rdonnay wrote:Here is a simple way to do it in a custom event handler:Code: Select all
#INCLUDE "dcdialog.CH" #INCLUDE "appevent.CH" FUNCTION Main() LOCAL GetList[0], oButton @ 0,0 DCPUSHBUTTONXP caption 'Testing' SIZE 20,2 ; ACTION {||(wtf 'activated')} DCREAD GUI FIT HANDLER ButtonHandler RETURN nil * ---------- PROC appsys ; RETURN * ---------- STATIC FUNCTION ButtonHandler( nEvent, mp1, mp2, oXbp, oDlg, GetList ) IF Empty(oXbp) RETURN DCGUI_NONE ENDIF IF oXbp:isDerivedFrom('XbpPushButton') IF nEvent == xbeM_LbClick DC_ClearEvents() RETURN DCGUI_IGNORE ELSEIF nEvent == xbeM_LbDblClick PostAppEvent(xbeP_Activate,,,oXbp) RETURN DCGUI_IGNORE ENDIF ENDIF RETURN DCGUI_NONE
Code: Select all
#INCLUDE "dcdialog.CH"
#INCLUDE "appevent.CH"
FUNCTION Main()
LOCAL GetList[0], oButton
@ 0,0 DCPUSHBUTTONXP caption 'Testing 1' SIZE 20,2 ;
action {||(wtf 'activated 1')} ;
EVAL {|o|o:lbClick := {||DC_ClearEvents()}, ;
o:lbDblClick := {|a,b,o|PostAppEvent(xbeP_Activate,,,o)}}
DCREAD GUI FIT
RETURN nil
* ----------
PROC appsys ; RETURN
rdonnay wrote:Here is a better solution:Code: Select all
#INCLUDE "dcdialog.CH" #INCLUDE "appevent.CH" FUNCTION Main() LOCAL GetList[0], oButton @ 0,0 DCPUSHBUTTONXP caption 'Testing 1' SIZE 20,2 ; action {||(wtf 'activated 1')} ; EVAL {|o|o:lbClick := {||DC_ClearEvents()}, ; o:lbDblClick := {|a,b,o|PostAppEvent(xbeP_Activate,,,o)}} DCREAD GUI FIT RETURN nil * ---------- PROC appsys ; RETURN