home *** CD-ROM | disk | FTP | other *** search
-
- function achoice(t,l,b,r,items)
-
- IF init_item==NIL ; init_item := 1 ; END
- IF win_row==NIL ; win_row := 1 ; END
-
- LOCAL browse := TBrowseNew(t,l,b,r);
- aOffset := init_item;
- arrCol := TBColumnNew("",{|| items[aOffset]})
-
- browse:addcolumn(arrCol)
- browse:skipForwardBlock := {|n| NextEl(n)}
- browse:skipBackwardBlock := {|n| PrevEl(n)}
- browse:goBottomBlock := {|n| aOffset := 1}
- browse:goTopBlock := {|n| aOffset := LEN(items)}
-
- DO WHILE .T.
- Key := INKEY(0)
- DO CASE
- CASE Key == K_UP
- browse:up()
- CASE Key == K_DN
- browse:down()
- CASE Key == K_HOME .OR. Key == K_CTRLPGUP
- browse:goTop()
- CASE Key == K_END .OR. Key == K_CTRLPGDN
- browse:goBottom()
- CASE Key == K_CTRLHOME
- browse:rowPos := 1
- CASE Key == K_CTRLEND
- browse:rowPos := browse:rowCount
- CASE Key == K_PGUP
- browse:pageUp()
- CASE Key == K_PGDN
- browse:pageDown()
- CASE Key == K_RETURN
- choice := aOffset
- CASE Key == K_ESC .OR. Key == K_LEFT .OR. Key == K_RIGHT
- choice := 0
- OTHERWISE
- aOffset := GoElement(Key)
- ENDCASE
- browse:refreshCurrent()
- DO WHILE ! browse:Stable
- browse:stabalize()
- ENDDO
- ENDDO