home *** CD-ROM | disk | FTP | other *** search
- // MyBrows2.prg
- //
- // MyBrowse2() - Standard generic browse routine. Allows key
- // specific actions to be passed as key / block pairs
-
- #include "Inkey.ch"
-
- FUNCTION MyBrowse2(oTbr, aBeforepairs, aAfterPairs)
-
- LOCAL nKey
- LOCAL lExitRequested := .F.
- LOCAL nElem
-
- // set defaults for before and after keys
- aBeforePairs := iif(aBeforePairs == NIL, {}, aBeforePairs)
- aAfterpairs := iif(aAfterPairs == NIL, {}, aAfterPairs)
-
- DO WHILE !lExitRequested
- FullStabilize(oTbr)
- nKey := InKey(0)
- nElem := Ascan(aBeforePairs, ;
- {|e| e[1] == nKey })
- IF nElem > 0
- lExitRequested := eval(aBeforePairs[nElem, 2], oTbr)
- ELSEIF !StdMeth(nKey, oTbr) .AND. oTbr:stable
- nElem := Ascan(aAfterPairs, ;
- {|e| e[1] == nKey })
- lExitRequested := iif(nElem > 0, ;
- Eval(aAfterPairs[nElem, 2], oTbr), ;
- nKey == K_ESC)
- ENDIF
- ENDDO
-
- RETURN NIL
-