home *** CD-ROM | disk | FTP | other *** search
- ********************
-
- FUNCTION Apop
-
- PARAMETERS _atop, _aleft, _adown, _aover, _array, _promptit, _popmess, _popshad
-
- IF PCOUNT() = 4
- DECLARE _array[FCOUNT()]
- AFIELDS(_array)
- _promptit = .T.
- _popmess = ""
- _popshad = .F.
- ELSEIF PCOUNT() = 5
- IF TYPE("_array") != "A"
- DECLARE _array[FCOUNT()]
- AFIELDS(_array)
- ENDIF
- _promptit = .T.
- _popmess = ""
- _popshad = .F.
- ELSEIF PCOUNT() = 6
- IF TYPE("_array") != "A"
- DECLARE _array[FCOUNT()]
- AFIELDS(_array)
- ENDIF
- _popmess = ""
- _popshad = .F.
- ELSEIF PCOUNT() = 7
- IF TYPE("_array") != "A"
- DECLARE _array[FCOUNT()]
- AFIELDS(_array)
- ENDIF
- _popshad = .F.
- ELSEIF PCOUNT() = 8
- * don't do anything
- ELSE
- RETURN(0)
- ENDIF
-
- PRIVATE _screen, _posit, _simrec, _pscreen, _ending
- PRIVATE _spacing, _begset, _starting, _opt, _qaz, _cshort
-
- _cshort = .F.
-
- IF _aleft + _aover >= 76
- _aover = 76 - _aleft
- _cshort = .T.
- ENDIF
-
- Windowpush(_atop, _aleft, _atop+_adown, _aleft+_aover,"","","","","","",.T.)
-
- IF !EMPTY(_popmess)
- @ _atop, _aleft + 2 SAY _popmess
- ENDIF
-
- STORE 1 TO _screen, _posit, _simrec
- STORE .F. TO up, down
-
- _pscreen = _adown - 4
- _ending = LEN(_array)
- _spacing= _adown - 1
- _begset = 1
- DO WHILE .T.
- Clear_area()
-
- IF _promptit
- EXTERNAL Pan_up, Pan_down
- SET KEY 18 TO Pan_up
- SET KEY 3 TO Pan_down
- ENDIF
-
- STORE 1 TO _starting, _opt
-
- _posit = (_screen * _pscreen) - (_pscreen - 1)
-
- FOR _qaz = _posit TO (_pscreen * _screen)
-
- IF _promptit
- @ _atop + _starting, _aleft + 1 PROMPT " " + SUBSTR(Fill_out(_array[_qaz], _aover-2), 1, _aover)
- ELSE
- @ _atop + _starting, _aleft + 1 SAY " " + IF(LEN(_array[_qaz]) >_aover-2, SUBSTR(_array[_qaz], 1, _aover-2), _array[_qaz])
- ENDIF
- _starting = _starting + 1
-
- IF _qaz >= _ending && simulate an EOF() condition
- EXIT
- ENDIF
- NEXT
- @ _atop+_adown-2, _aleft+1 SAY SUBSTR("ESC to Quit", 1, _aover-2)
-
- IF _qaz = _ending .AND. _screen = 1
- * say nothing!
- ELSEIF _qaz < _ending
- @ _atop+_adown-1, _aleft+1 SAY SUBSTR("PgUp / PgDn", 1, _aover-2)
- ELSE
- @ _atop+_adown-1, _aleft+1 SAY SUBSTR("PgUp", 1, _aover-2)
- ENDIF
-
- IF _promptit
- MENU TO _opt
- SET KEY 18 TO
- SET KEY 3 TO
- ELSE
- INKEY(0)
- DO CASE
- CASE LASTKEY() = 27
- _opt = 0
- CASE LASTKEY() = 18
- up = .T.
- _opt = 0
- CASE LASTKEY() = 3
- down = .T.
- _opt = 0
- OTHERWISE
- _opt = 1
- ENDCASE
-
- ENDIF
-
- IF _opt = 0
- DO CASE
- CASE up .AND. !down
- up = .F.
- _screen = IF(_screen = 1, _screen, _screen - 1)
- CASE down .AND. !up
- down = .F.
- _screen = _screen + 1
- IF _screen > INT(LEN(_array)/_pscreen)+1 .OR. _qaz >= LEN(_array)
- _screen = _screen - 1
- ENDIF
- OTHERWISE
- EXIT
- ENDCASE
- ELSE
- _opt = (_opt + (_pscreen * _screen)) - _pscreen
- EXIT
- ENDIF
- ENDDO
- Windowpop()
- RETURN(_opt)
-
- * End of File
-