BBS: Inland Empire Archive Date: 06-01-92 (02:00) Number: 178 From: MARK BUTLER Refer#: NONE To: BRYAN HOOVER Recvd: NO Subj: Pulldown Menus Conf: (2) Quik_Bas
On 05-30-92 BRYAN HOOVER wrote to ALL...
BH> OK, I've got the menuing part. That is, I know how to make a
BH> menu with a highlighted, shall we say "cursor bar", but, how do
BH> you make it pop down over the existing screen without
BH> overwriting what's already there? I know a little about using
BH> video pages. From what I've gathered though, you can display
BH> only one video page at a time. Whats the "usual" technique for
BH> pulldown menus? I'd rather avoid using assembly if possible.
BH> I'm not quite ready for that. I want to be able to understand
BH> what I'm doing and for now, I know nothing about assembly
BH> language. Perhaps if my neighbors were not so noisy I could
BH> figure out something on my own. Any ideas?, my head's killing
BH> me.
Well, I don't know about "usual" but "simple", yes. You can use PCOPY
to accomplish this quite easily. In the demo code that follows
'frontpage%' is the current screen page 0. You save a copy of it to
the second page or backpage% (page 1). Then you display your menu.
After a selection is made and you want your menu to "disappear" you
just copy the backpage% to frontpage% and it's gone, with the original
screen contents reappearing undisturbed. Try this demo to see this in
action...
------------------------8< CUT HERE 8<-------------------------------
DEFINT A-Z
CONST frontpage% = 0, backpage% = 1
DECLARE SUB Drawbox (Uprow%, Ltcol%, Lorow%, Rtcol%)
COLOR 7, 1
VIEW PRINT
CLS
FOR i% = 1 TO 2000
PRINT CHR$(176);
NEXT
COLOR 0, 7
DO
LOCATE 1, 1
PRINT " This is a dummy Menu bar - press any ";
PRINT "key to pull down a 'menu' "; SPACE$(15);
'*** copy the current page 0 to page 1
PCOPY frontpage%, backpage%
SLEEP
LOCATE 1, 1
PRINT " Press CTRL-BRK to quit or any other key to continue";
PRINT SPACE$(28);
Drawbox 2, 2, 10, 15 '<---- draw a dummy "menu box"
LOCATE 3, 3
COLOR 7, 0
PRINT " Dummy "
COLOR 0, 7
LOCATE 4, 4
PRINT "Menu"
LOCATE 5, 4
PRINT "Selection"
LOCATE 6, 4
PRINT "Items"
LOCATE 7, 4
PRINT "Press"
LOCATE 8, 4
PRINT "Any"
LOCATE 9, 4
PRINT "Key"
SLEEP
'*** copy page 1 back to page 0 and the menu "disappears"
PCOPY backpage%, frontpage%
LOOP
DEFINT A-Z
SUB Drawbox (Uprow%, Ltcol%, Lorow%, Rtcol%)
Wide% = (Rtcol% - Ltcol%) - 1
LOCATE Uprow%, Ltcol%
PRINT CHR$(218); STRING$(Wide%, CHR$(196)); CHR$(191);
FOR i% = Uprow% + 1 TO Lorow% - 1
LOCATE i%, Ltcol%
PRINT CHR$(179); SPACE$(Wide%); CHR$(179);
NEXT i%
LOCATE Lorow%, Ltcol%
PRINT CHR$(192); STRING$(Wide%, CHR$(196)); CHR$(217);
END SUB
------------------------8< CUT HERE 8<-------------------------------
Hope this helps...
------------> MHB :-)
... OFFLINE 1.37 * Open the pod bay doors ...HAL? I said op@ NO CARRIER
.............................................................................
--- WM v2.01/91-0012
* Origin: Com-Dat BBS Hillsboro, OR. HST (503) 681-0543 (1:105/314)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET