home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 September
/
Simtel20_Sept92.cdr
/
msdos
/
microcrn
/
issue_43.arc
/
DBMENU.ARC
/
DRAWMENU.PRG
< prev
next >
Wrap
Text File
|
1988-05-23
|
2KB
|
95 lines
**************************************************
*** NAME: DRAWMENU.PRG
***
*** AUTHOR: BRETT FISHBURNE
***
*** PURPOSE: DRAW A MENU DEFINED IN THE MENUFILE DATABASE
***
**************************************************
PARAMETER Layout, Instruction, Menu
*** ESTABLISH ENVIRONMENT
SET TALK OFF
SET ECHO OFF
SET STATUS OFF
SET SCOREBOARD OFF
SET EXACT ON
*** PREPARE THE DATABASE
SELECT 1
USE MENUFILE
SET FILTER TO TRIM(TITLE)=TRIM(Menu)
GOTO TOP
SELECT 2
USE TILESETS
SELECT 1
*** DRAW BOX
@ 2,0 TO 2,79 DOUBLE
@ 0,0 TO 21,79 DOUBLE
*** FILL IN HEADER AND FOOTER
@ 1,2 SAY SYSTEM
@ 1,40-INT(LEN(TRIM(TITLE))/2) SAY TITLE
@ 1,55 SAY TIME()
@ 1,71 SAY DATE()
@ 22,40-INT(LEN(TRIM(Instruction))/2) SAY Instruction
*** ESTABLISH TILE BOUNDARIES
SELECT 2
GOTO Layout
*** DRAW TILES
i = '0'
temp2 = 1
DO WHILE temp2 # 0
mline&i = VAL(LEFT(TILE&i,2)) + 1
mHorz&i = VAL(SUBSTR(TILE&i,4,2)) + 2
temp = TILE&i
@ &temp
i = STR(VAL(i) + 1)
IF i = '10'
EXIT
ELSE
i = LTRIM(i)
temp2 = LEN(TRIM(TILE&i))
ENDIF
ENDDO
*** PUT OPTIONS AND TITLES IN TILES
SELECT 1
DO WHILE .NOT. EOF()
temp = STR(TILE,1)
DO CASE
CASE ELEMENT_TY = 1
*** TITLE
@ mline&temp, mHorz&temp + ELEMENT_NO SAY TRIM(ELEMENT)
@ mline&temp + 1,mHorz&temp + ELEMENT_NO SAY ;
REPLICATE('-',ELEMENT_SI)
mline&temp = mline&temp + 2
CASE ELEMENT_TY = 2
*** OPTION
@ mline&temp, mHorz&temp SAY CHR(64 + ELEMENT_NO) + ' -- ';
+ TRIM(ELEMENT)
mline&temp = mline&temp + 1
CASE ELEMENT_TY = 3
*** CONTINUATION
@ mline&temp, mHorz&temp + 5 SAY TRIM(ELEMENT)
mline&temp = mline&temp + 1
CASE ELEMENT_TY = 4
*** MESSAGE
@ mline&temp, ELEMENT_NO SAY TRIM(ELEMENT)
ENDCASE
SKIP
ENDDO