home *** CD-ROM | disk | FTP | other *** search
- Introduction
- ═══════════════════════════════════════════════════════════════════════════════
- The program will not translate these lines because they do NOT have a
- delimiter. This is useful when you want to internally document a menu
- outline.
-
- This is the document file for ClipMenu Summer '87 by John Kaster
-
- Based on Artificial Intelligence techniques - I'm told that I must be
- artificially intelligent, and these are my techniques, so . . .
- ═══════════════════════════════════════════════════════════════════════════════
-
- The parameters passed are:
- ClipMenu <input file name>,<output file name>,<full program>,<delimiter>
- If the first or second parameter is not passed, you will be prompted for them
- Third parameter: "Y", "y", "N", "n". Default="Y"
- Fourth parameter: defaults to ASCII character 124 decimal, 7C hex
-
- Limits on the parts of the menu outline:
- Each line can be no longer than 255 characters, each part divided however
- you want
-
- Type "ClipMenu CLIPTEST CLIPTEST" for a demonstration of this program, then
- look at CLIPTEST.PRG.
-
- NEW FEATURES (August 1, 1987):
-
- 1) Faster screen displays by saving screens for the various menu options. If
- you are cramped for memory, simply add "RELEASE <procname>" (where <procname>
- is the name of the procedure [also the SAVED SCREEN] that you are in) to each
- procedure right before the "RETU" statement. You will have slower screens, but
- you won't run out of memory.
-
- 2) For any menu option, you can INCLUDE or INSERT a text file for that option
- so that if you want to do multiple actions under one menu option without
- making it a procedure (as in the case of when you want to create a GLOBAL
- array), you don't have to recode the menu system every time you change the
- menu. Just put that text into an ASCII file and tell the program to insert it
- at that menu option with the code '■I' (character 254 decimal followed by an
- upper or lowercase "I"). See the examples in the menu.
-
- NEW FEATURES (August 29, 1987):
-
- 3) If you need to set up reference arrays in your main program so the arrays
- be used globally (when, for instance, you're using my InArray() function) you
- can put it on a line before the menu starts, as in ■IARRCHECK.PRC. You can
- set up an array to be used globally inside anything called from within a
- submenu by including the file anywhere underneath that main menu option.
- Pretty slick, huh?
-
- 4) RAM testing to determine if you have enough free RAM to save the sub-menu
- screens.
-
- NEW FEATURES (August 31, 1987):
-
- 5) A configuration file has been implemented. Put it in the same directory
- as ClipMenu and name it CLIPMENU.CMC. The following lines are what it
- contains:
- Line Contents
- ==== ======================================================
- 1 Your Name
- 2 Your Copyright Notice
- 3 DON'T INCLUDE or INCLUDE
- (To include the utilities found in my library)
- 4 DON'T TRACE or TRACE
- (To internally document the menu outline by listing where each level is
- called from)
-
- NEW FEATURES (October 28, 1987):
-
- 6) An "unlimited" depth of pop-up menus from the pull-down menu (level 1).
- The program is not sensitive to screen boundaries, but if you set up your
- menu correctly, with "Quit" as the rightmost option, there should be no
- problem with invalid screen ranges. The example menu is not intended to be
- an example of good menuing structure - it's very poor. It's just intended
- to demonstrate the power of the menu generator. I would seriously wonder
- about any menu system that had to go that deep for a user to do something.
-
- NEW FEATURES (June 9, 1988):
-
- 7) Converted to support Clipper Summer '87, Tom Rettig's library or any
- other additional libraries are no longer needed. The new version is compiled
- with Turbo Pascal version 4.0 (Hence the .EXE extension on the program), also
- fixed the color bug on the pop-up levels after the second pull-down level.
-
- Responses
- If you like this program and want to use it to help create your applications,
- please send $15.00 to:
-
- John Kaster
- 6064 Old Landing Way
- Burke, VA 22015
- 703/250-9884
-
- For a faster response, leave a message for John Kaster on:
-
- EXEC-PC BBS in Milwaukee, WI 414/964-5160
- 1200 - 9600 BAUD
-
- - or -
-
- The BREEZE in Virginia 703/920-7028
- 2400 BAUD
-
- If you do buy this utility, you will be informed of any updates or other
- Clipper(tm) utilities I create.
-
- Revision History
- John Kaster
- Original: September 22, 1986
- Revised.: January 11, 1987
- Revised.: January 24, 1987
- Revised.: March 6, 1987
- Revised.: July 25, 1987
- Revised.: August 1, 1987
- Revised.: August 29, 1987
- Revised.: October 28, 1987
- Revised.: June 6, 1988
-
- GRIPES
- All the enhancements to this system I have created out of my own SUPERB
- imagination. The only responses to ClipMenu came from co-workers in my own
- office. I think some people out there must be using this utility, because I
- see it on boards that I didn't load it on. Or else you're all just trying to
- get download credit! Anyway, the reason I released this program into the
- public domain was to get some helpful suggestions. If I don't get any
- helpful responses, I'm not going to bother uploading it any more. How's that
- for spiteful! I'm interested in seeing how I can improve this system with
- other programmer's suggestions . . . or don't you guys (and gals) think you
- can teach me anything?
-
- Example menu - introduction
- ──────────────────────────────────────────────────────────────────────────────
- Below is a demonstration menu outline for ClipMenu.COM. All lines with the
- delimiter you define that have a leading "." are considered a suboption. The
- depth of the menu option is indicated by the number of periods. No error or
- warning messages occur in this version for improperly nested levels, so pay
- attention to what you're doing.
-
- For procedures that have a space (refer to GO BOTT under browse), the DO will
- be omitted in the menu generation. If you use "RETU", or "QUIT" (exactly like
- that), CLIPMENU will omit the "DO " in front of them. This test IS case
- sensitive.
-
- One possible problem occurs when the left and right arrow keys are stuffed for
- moving through the submenus. If you have a top menu option that doesn't have
- any submenus, it will be automatically executed because of the way the
- keys are programmed.
-
- Happy Computing!
- Menu System Outline - Syntactical examples
- ──────────────────────────────────────────────────────────────────────────────
-
- Modify|Modify|Change data in the selected data file
- . Browse|■IModify.1|Browse through the data file quickly
- . Delete|* DO CHNGREC WITH 'Delete'|Mark a record for deletion
- . Edit|Update|Add or change a record in the selected data file
- . . First|SELE1|Edit the first file
- . . . Add|Addrec|Add a record to the file 1
- . . . . Name|* Get by Name|Add a record by name
- . . . . Date|* Get by Date|Add a record by date
- . . . . Title|* Get by Title|Add a record by title
- . . . . Quit|RETU|Return to the previous menu
- . . . Delete|* DelRec|Delete a record from the file 1
- . . . Change|* Change|Change a record from file 1
- . . . Quit|RETU|Return to the Editing file 1 menu
- . . Second|SELE2|Edit the second file
- . . . Add|* Addrec|Add a record to the file 2
- . . . Delete|* DelRec|Delete a record from the file 2
- . . . Change|* Change|Change a record from file 2
- . . . Quit|RETU|Return to the Editing file 2 menu
- . . Third|SELE3|Edit the third file
- . . . Add|* Addrec|Add a record to the file 3
- . . . Delete|* DelRec|Delete a record from the file 3
- . . . Change|* Change|Change a record from file 3
- . . . Quit|RETU|Return to the Editing file 3 menu
- . . Quit|RETU|Return to the Modify menu
- . Pack|* PACKEM|Remove all records marked for deletion from the selected data file
- . Restore|* DO CHNGREC WITH 'Restore'|UN-delete a record
- . Status|* STATS|Status report on the system
- . Quit|RETU|Return to the main menu
- Report|ReptMenu|Print a report
- . Output|OpChoice|Select direction for output
- . . Disk|* DO SELEFILE WITH '*.TXT'|Send output to a DISK FILE
- . . Printer|OUTPUT = 'P'|Send output to the PRINTER
- . . Screen|OUTPUT = 'S'|Send output to the SCREEN
- . . Quit|RETU|Abort sending output anywhere
- . Graph|* DO Graph|Get my file HPPLOTxx.ARC!
- . Print|* DO Rept|Get my file HPLJLBxx.ARC!
- . Quit|RETU|Return to the main menu
- Quit|QuitIt|Quit the ClipMenu 3.5 Demonstration system
- . Yes|keyboard chr(27)+chr(27)|Yes, Quit the ClipMenu 3.5 Demonstration system
- . No|RETU|No, return to the main menu
- . Info|Info|Get information on the windowing functions
- . . First|INFO1|Select the first file
- . . . General|Gen1|Get general information
- . . . . Job|Job11|Get information by Job in level 1
- . . . . . X Prompt|* Last prompt|Last level
- . . . . . Y Prompt|* Last prompt|Last level
- . . . . . Z Prompt|* Last prompt|Last level
- . . . . . Quit|RETU|Return to the previous menu
- . . . . Specific|Spec11|Get specific information
- . . . . . X Prompt|* Last prompt|Last level
- . . . . . Y Prompt|* Last prompt|Last level
- . . . . . Z Prompt|* Last prompt|Last level
- . . . . . Quit|RETU|Return to the previous menu
- . . . . Help|Help11|Get some help (professional, that is)
- . . . . . X Prompt|* Last prompt|Last level
- . . . . . Y Prompt|* Last prompt|Last level
- . . . . . Z Prompt|* Last prompt|Last level
- . . . . . Quit|RETU|Return to the previous menu
- . . . . Quit|RETU|Return to the previous menu
- . . . Name|Name1|Get information by name in level 1
- . . . . Job|* Job12|Get information by Job in level 1
- . . . . Specific|* Spec12|Get specific information
- . . . . Help|* Help12|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Date|Date1|Get information by Date in level 1
- . . . . Job|* Job13|Get information by Job in level 1
- . . . . Specific|* Spec13|Get specific information
- . . . . Help|* Help13|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Title|Title1|Get information by Title in level 1
- . . . . Job|Job14|Get information by Job in level 1
- . . . . . X Prompt|* Last prompt|Last level
- . . . . . Y Prompt|* Last prompt|Last level
- . . . . . Z Prompt|* Last prompt|Last level
- . . . . . Quit|RETU|Return to the previous menu
- . . . . Specific|Spec14|Get specific information
- . . . . . X Prompt|* Last prompt|Last level
- . . . . . Y Prompt|* Last prompt|Last level
- . . . . . Z Prompt|* Last prompt|Last level
- . . . . . Quit|RETU|Return to the previous menu
- . . . . Help|Help14|Get some help (professional, that is)
- . . . . . X Prompt|* Last prompt|Last level
- . . . . . Y Prompt|* Last prompt|Last level
- . . . . . Z Prompt|* Last prompt|Last level
- . . . . . Quit|RETU|Return to the previous menu
- . . . . Quit|RETU|Return to the previous menu
- . . . Position|Position1|Get information by Position in level 1
- . . . . Job|* Job15|Get information by Job in level 1
- . . . . Specific|* Spec15|Get specific information
- . . . . Help|* Help15|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Salary|Salary1|Get information by Salary in level 1
- . . . . Job|* Job16|Get information by Job in level 1
- . . . . Specific|* Spec16|Get specific information
- . . . . Help|* Help16|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Quit|RETU|Return to the previous menu
- . . Second|INFO2|Select the second file
- . . . General|Gen2|Get general information
- . . . . Job|* Job21|Get information by Job in level 2
- . . . . Specific|* Spec21|Get specific information
- . . . . Help|* Help21|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Name|Name2|Get information by name in level 2
- . . . . Job|* Job22|Get information by Job in level 2
- . . . . Specific|* Spec22|Get specific information
- . . . . Help|* Help22|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Date|Date2|Get information by Date in level 2
- . . . . Job|* Job23|Get information by Job in level 2
- . . . . Specific|* Spec23|Get specific information
- . . . . Help|* Help23|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Title|Title2|Get information by Title in level 2
- . . . . Job|* Job24|Get information by Job in level 2
- . . . . Specific|* Spec24|Get specific information
- . . . . Help|* Help24|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Position|Position2|Get information by Position in level 2
- . . . . Job|* Job25|Get information by Job in level 2
- . . . . Specific|* Spec25|Get specific information
- . . . . Help|* Help25|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Salary|Salary2|Get information by Salary in level 2
- . . . . Job|* Job26|Get information by Job in level 2
- . . . . Specific|* Spec26|Get specific information
- . . . . Help|* Help26|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Quit|RETU|Return to the previous menu
- . . Third|INFO3|Select the third file
- . . . General|Gen3|Get general information
- . . . . Job|* Job31|Get information by Job in level 3
- . . . . Specific|* Spec31|Get specific information
- . . . . Help|* Help31|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Name|Name3|Get information by name in level 3
- . . . . Job|* Job32|Get information by Job in level 3
- . . . . Specific|* Spec32|Get specific information
- . . . . Help|* Help32|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Date|Date3|Get information by Date in level 3
- . . . . Job|* Job33|Get information by Job in level 3
- . . . . Specific|* Spec33|Get specific information
- . . . . Help|* Help33|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Title|Title3|Get information by Title in level 3
- . . . . Job|* Job34|Get information by Job in level 3
- . . . . Specific|* Spec34|Get specific information
- . . . . Help|* Help34|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Position|Position3|Get information by Position in level 3
- . . . . Job|* Job35|Get information by Job in level 3
- . . . . Specific|* Spec35|Get specific information
- . . . . Help|* Help35|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Salary|Salary3|Get information by Salary in level 3
- . . . . Job|* Job36|Get information by Job in level 3
- . . . . Specific|* Spec36|Get specific information
- . . . . Help|* Help36|Get some help (professional, that is)
- . . . . Quit|RETU|Return to the previous menu
- . . . Quit|RETU|Return to the previous menu
- . . Quit|RETU|Return to the Info menu
-
- ──────────────────────────────────────────────────────────────────────────────
- Please note - you MUST have at least one extra line at the end of the menu
- outline file. Otherwise, your last option will not be translated.
- ──────────────────────────────────────────────────────────────────────────────