Dec 202017
A Quick Basic library allowing users to incorporate pulldown menus into a Quick Basic program, works with mouse or keyboard. Example Enclosed.
File MSMENUS.ZIP from The Programmer’s Corner in
Category BASIC Language
A Quick Basic library allowing users to incorporate pulldown menus into a Quick Basic program, works with mouse or keyboard. Example Enclosed.
File Name File Size Zip Size Zip Type
EXAMPLE.BAS 1569 838 deflated
MSMENU.DOC 8113 3034 deflated
MSMENU.LIB 18485 7792 deflated
MSMENU.QLB 18302 7870 deflated
TPCREAD.ME 199 165 deflated

Download File MSMENUS.ZIP Here

Contents of the MSMENU.DOC file

************* JSH Scientific ********** One to Watch.........

++++++++++ MSMENU a Menu Library ++++++++++

This is a "Windowing" menu Library. It is not intended to operate in
conjunction with a "WINDOWS" environment.

This library is a quick library to be used in conjunction with programming
in a Microsoft Quick Basic environment.

Startup QuickBasic using the /L option by typing:


Make sure you put all MSMENU files included in the QB directory!

What it does is allow you to create simple menus for access using a mouse
or a keyboard.

To make selections:

using a mouse:
1) put cursor on menu bar item
2) Click and hold left key on mouse
3) When you have hilighted selection,
release left key, then click again

using a keyboard:
1) Select from menu bar using the < & > keys
pressing enter when the first letter of selection
is flashing

2) using the + & - keys, press enter when your
selection has been hilighted

Command Call Examples

Call: desktop(desk$)

Function: The "desktop" Area will be the pattern of desk$

Example : Call desktop$("")

Limitations: One Character strings only!

Call: statusbar(function$,how$)

Function: A status bar will appear at the bottom of the screen
with the function$ as the current function, & the how$ as any
helpful instructions, appearing to the right of function$

Example: CALL statusbar("MAIN MENU", " Press The Letter to Select")

Limitations: both variables are strings, limited by the screen width,


Call: menubar(items,menulist$)

Function: Places a menu bar at the top of the screen with "items" number
of items, described by menulist$

Example: Call menubar(4,"File.Edit.Show.List.")

Limitations: 8 or 9 menu items,(More if small words, experiment!) Each item
in menulist$ MUST be separated by a PERIOD, with a PERIOD AFTER
THE LAST ITEM! Don't Forget! Or Else you'll BOMB!


Call: x%=getmenuitem(items,menulist$,macro$)

Function: Gets the user selected menu item based on mouse or keyboard input.
Items refers to the number of menu items in the list. menulist$
should have the same value as the previous menulist$, use as a
global variable.

The value returned corellates directly to the ordinal value of
the previous menulist$ Ex: if x% = 2, then user selected the "EDIT"
menu item. The variable macro$ corresponds with the first letter
of each menu item for a keyboard "quick select", of course, this
is always needed to call, but only non-mouse systems will
utilize this string.

Example: x% = getmenuitem(4,"File.Edit.Show.List.","FESL")

Limitations: For variables "items" and "menulist$" follow
the previously stated guidelines. The macro$ should hold
the first letter (in caps) of each menu item. The library
uses them for quick macro reference, and instant selection.


Call: pulldown(x%, menuname$,subitems,itemlist$,macro$)

Function: "pulls down" the menu selected indicated by x%, named menuname$,
the value of subitems will determine how many selections will be
available, (20 max) the item list follows the same specifications
as "menulist$" above, with macro$ doing the same.

Example: selection = pulldown(x%, "File", 2, "Open.Close.", "OC")
(The value returned to selection would be the number of the
menu item selected, in this case, either 1 or 2. If a 27 is
returned, the user pressed ESCape)

Limitations: All previous limits apply, with the number of selections
being 20. Any greater value may bomb.


Call: putwindow(x,y,title$,height,width)

Function: Places a "window" with shadow on the screen at x,y coordinates
with the title of title$. the variable height determines the
height in text lines, and the variable width determines the
width in screen characters. This is all in a text mode so it
has to abide under those screen limits. All x,y coordinates are
used in text mode, not graphic.

Example: CALL putwindow(10, 4, "Answer", 6, 43)
(Puts a window titled "Answer" 6 lines high,43 chars across at
the screen position 4 columns down, and 10 across)

Limitations: The same as the LOCATE command. If your grphic mode is 80 x 24,
then don't try to call putwindow with x > 80 or x < 0 and y >24
or y < 0. The width char will include the length of the title$
automatically. The largest "window" you may put on the screen
is "putwindow(1,1,"Largest Screen",24,79)" or virtually the
entire screen, play with it! The longest title can be 79 chars.


The correct calling order would be:

1) Call menubar (setup menu bar)
2) Call getmenuitem (have user choose item)
3) Call pulldown (show other sub menu items for selection)

You must conform to this standard as the getmenuitem module will check
the video console for ascii output on the menu bar. This is then how
pulldown will place the submenu on the screen in the proceeding call.

Programmers Note:
I developed this library because I was sick of my boring AT at work that
could not use windows and I wanted to make my work programs a little more
exciting. I hope you will find this just as fun, especially if you choose
to incorporate these functions in your programs.

Copyright Notice
This software is COPYRIGHT (c) 1992 JSH Scientific, All rights reserved.

If you use this library, please send a registration fee of $ 10.00 to:

JSH Scientific
425 8th Street, N.W. # 646
Washington, D.C. 20004

Please include your name, address & phone. State that you are
paying for a single site license for MSMENU Library Software. A
Printed license agreement will be sent to you within 3 weeks with
a registration number and other important information.

Make Checks Payable to JSH Scientific. Please let me know from which
system you downloaded this so I may continue to extend my services in
the proper directions! Also, if any problems arise while trying to use
this, please drop me a line and let me know what's wrong and I will do
my best to correct the problem. Any suggestions would also be appreciated!

This source code is available for a cost of $30.00 to the same address
above. Please state that you want SOURCE CODE for MSMENU Library.

You may copy this and distribute to as many people as you wish, but if
you do find this useful, please drop $10.00 in the mail, it's a small
fee that will pay for itself with the time you will save!

Have a project? Let me know! Maybe I can make
a program or a Library just for you! Reasonable rates! Drop me a line!

------- Joseph Hancock...............

 December 20, 2017  Add comments

Leave a Reply