home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
s
/
s9302.zip
/
RUBEL.ZIP
/
MEMO_POP.PRG
< prev
Wrap
Text File
|
1993-01-06
|
2KB
|
118 lines
FUNCTION memo_pop
PARAMETERS sul_row,sul_col,slr_row,slr_col,m_name
PRIVATE m_width, m_height, m_mark, m_max
PRIVATE cur_curs, cur_wid, xx, m_key
* Copyright (c) 1992 Performance Dynamics Associates
* Stripped-down version of Power Tools memo_pop function
m_width = slr_col - sul_col - 3
m_height = slr_row - sul_row - 1
cur_wid = set('memowidth')
SET memowidth to m_width
cur_curs = set('cursor') = 'ON'
SET CURSOR OFF
m_max = memlines(&m_name)
m_mark = m_height
DEFINE WINDOW memo_temp FROM sul_row,sul_col ;
TO slr_row,slr_col ;
DOUBLE
ACTIVATE WINDOW memo_temp
DO memopop1 && paint the first window
DO WHILE .t.
m_key = 0
DO WHILE m_key = 0
m_key = inkey()
ENDDO
IF m_key = 27 .or. m_key = 23
EXIT
ENDIF
DO CASE
CASE m_key = 24 && cursor down
IF m_mark < m_max
m_mark = m_mark + 1
? ' ' + mline(&m_name,m_mark)
ELSE
?? chr(7)
ENDIF
CASE m_key = 5 && cursor up
IF m_mark # m_height
m_mark = max(m_mark-1, m_height)
DO memopop1
ELSE
?? chr(7)
ENDIF
CASE m_key = 18 && page up
IF m_mark > m_height
m_mark = max(m_height, m_mark-m_height+1)
DO memopop1
ELSE
?? chr(7)
ENDIF
CASE m_key = 3 && page down
IF m_mark # m_max
m_mark = min(m_max, m_mark+m_height-1)
DO memopop1
ELSE
?? chr(7)
ENDIF
CASE m_key = 26 && home key
m_mark = m_height
DO memopop1
CASE m_key = 2 && end key
m_mark = m_max
DO memopop1
ENDCASE
ENDDO
RELEASE WINDOW memo_temp
SET MEMOWIDTH TO cur_wid
IF cur_curs
SET CURSOR ON
ENDIF
IF isblank(cur_win)
ACTIVATE SCREEN
ENDIF
RETURN(m_max)
********
PROCEDURE memopop1
*** paint the window
CLEAR
xx = 1
DO WHILE xx < = m_height
@@ xx-1,1 SAY mline(&m_name,m_mark-m_height+xx)
xx = xx + 1
ENDDO
RETURN
********