Re: dcget keyblock
Posted: Mon Oct 18, 2010 2:11 pm
Zdeno -
I'm going to need more time to figure out a solution.
Roger
I'm going to need more time to figure out a solution.
Roger
Donnay Software Web Forums
http://bb.mobile.donnay-software.com/Donnay/
http://bb.mobile.donnay-software.com/Donnay/viewtopic.php?f=2&t=305
Hi Jack,jdsoft wrote:In your keyblock, insert the code: ....
Code: Select all
#INCLUDE "dcdialog.CH"
#INCLUDE "appevent.CH"
FUNCTION Main()
LOCAL GetList[0], cGet := Space(50), aDir := Directory(), oBrowse, bAction
bAction := {|oGet|MyKeyboard(oBrowse,oGet)}
@ 0,0 DCGET cGet KEYBLOCK {|n,x,oGet|MyKeyDelay(n,0.8,oGet)}
@ 2,0 DCBROWSE oBrowse DATA aDir SIZE 60,25
DCBROWSECOL ELEMENT 1 HEADER 'File Name' WIDTH 50 PARENT oBrowse
DCUSEREVENT xbeP_User + 10 ACTION bAction
DCREAD GUI FIT
RETURN nil
* ----------
FUNCTION MyKeyDelay( nKey, nDelay, oGet, bBlock )
LOCAL nEvent, oXbp, mp1, mp2, nSeconds := Seconds()
DEFAULT nDelay := 0
IF nDelay > 0
DO WHILE Seconds() - nSeconds < nDelay .AND. ( nKey < 60000 )
nEvent := AppEvent(@mp1,@mp2,@oXbp,.1)
IF Valtype(oXbp) == 'O'
oXbp:handleEvent(nEvent,mp1,mp2)
ENDIF
ENDDO
ENDIF
PostAppEvent( xbeP_User + 10, oGet )
RETURN nil
* -------------
STATIC FUNCTION MyKeyboard( oBrowse, oGet )
LOCAL cBuffer := Trim(oGet:get:buffer), nArrayElement
nArrayElement := AScan(oBrowse:dataSource,{|a|Upper(a[1])=Upper(cBuffer)})
IF nArrayElement > 0
oBrowse:arrayElement := nArrayElement
ENDIF
oBrowse:refreshAll()
DC_ClearEvents()
RETURN nil
* -------------
PROC appsys ; return