home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / turbopas / pultp4.arc / PULLDOWN.DOC next >
Text File  |  1987-11-22  |  7KB  |  188 lines

  1. PULLDOWN.TPU  Version 1.0
  2.  
  3. November 22, 1987
  4.  
  5.  
  6. INTRODUCTION
  7.  
  8. The set of files contain in this archive consists of a pulldown
  9. menu system, a pop up menu window, and routines to save and
  10. restore the current window and the cursor.  These routines were
  11. written with Turbo Pascal Version 4.  Compilation with previous
  12. versions is not possible since the pulldown menu system is
  13. written as a Unit.
  14.  
  15. The Pulldown window system was designed to be generic in the
  16. sense that you can specify up to 10 headers (pulldown menu
  17. titles), and up to 10 submenus under each header.  The popup
  18. window can contain as many as entries that will fit on a screen,
  19. with each entry limited to 21 characters total.
  20.  
  21.  
  22. PULLDOWN MENU & POPUP MENU WINDOW
  23.  
  24. The use of the pulldown menu system is simple. You specify the
  25. following:
  26.              1) The number of headers in the pulldown menu
  27.              2) The column each header should start in
  28.              3) The number of entries in each pulldown menu's
  29.                 submenu
  30.              4) The width of each pulldown menu submenu
  31.              5) The title (if any) that will appear on the
  32.                 pulldown header line
  33.              6) The starting column for the title
  34.              7) The popup menu X and Y starting location
  35.              8) The popup menu width
  36.              9) The number of entries in the popup menu
  37.  
  38.  
  39. The pulldown menu system and the popup menu return three variables:
  40.  
  41.              1) Pulldown_Menu_Number    - Identifies which
  42.                                           pulldown menu header
  43.                                           was selected
  44.  
  45.              2) Pulldown_Menu_Selection - Item selected in pulldown
  46.                                           menu's submenu
  47.  
  48.              3) PopUp_Menu_Selection    - Item selected in PopUp
  49.                                           menu
  50.  
  51. These variables are global to your program.  By setting up a Case
  52. statement, you can identify which menus were selected and call
  53. your corresponding routines.
  54.  
  55. In addition, there are several procdures available to your
  56. program.
  57.  
  58.              1) Cursor_Off     -  Turns off the cursor
  59.              2) Cursor_On      -  Turns the cursor on
  60.              3) Save_Window    -  Saves the current window.  Note
  61.                                   that stacked windows are not
  62.                                   supported.
  63.              4) Restore_Window -  Restores the saved window
  64.              5) Make_Menu (col, row, width, num of entries,
  65.                            MenuArray )
  66.  
  67.                                -  Col is the starting col for the
  68.                                   popup menu (col is an integer)
  69.                                -  Row is the starting row for the
  70.                                   popup menu (row is an integer)
  71.                                -  Width is the width of the
  72.                                   longest entry's text field
  73.                                   (borders are not counted in the
  74.                                   width.  The popup menu border
  75.                                   will be outside the text area,
  76.                                   i.e. starting at col-1, row-1,
  77.                                   etc.)
  78.                                -  Num of entries is just that
  79.                                -  MenuArray is an initialized
  80.                                   array with the text you want
  81.                                   displayed in the popup menu
  82.  
  83.  
  84. PULLDOWN MENU SELECTIONS
  85.  
  86. Selections can be made by moving the cursor to the desired item
  87. and hitting the return key.  A short cut method is to hit the key
  88. corresponding to the number or capitalized first letter displayed
  89. in a highlighted color.  Once the main pulldown menu displays a
  90. submenu, you can hit the left or right arrow keys to go from one
  91. pulldown menu header to the next, or use the up or down arrow
  92. keys to move within the submenu.  If you want to back out of the
  93. submenu, hit the ESC key.
  94.  
  95.  
  96. FILES CONTAINED IN THE ARCHIVE
  97.  
  98. The archive contains four files:
  99.  
  100.              1) Pulldown.Doc   -  This file
  101.              2) Pulldown.TPU   -  The pulldown Unit file
  102.              3) PullTest.Pas   -  A demo file
  103.              4) PullTest.EXE   -  The compiled demo file
  104.  
  105. PULLTEST.PAS - DEMO FILE
  106.  
  107. PullTest.PAS should be examined to see how you should load the
  108. data structures, set up your case statements, etc.  I have
  109. provided sample headers and submenus to show the types of program
  110. control that may be set up.
  111.  
  112. Two areas that showld be examined closly are the case statements
  113. for Pulldown Menu #1, submenu items #1 and #2.
  114.  
  115. In submenu Item #1 the save and restore screen procedures are
  116. demonstrated.  Once a selection is made from the popup menu,
  117. control is returned to the main pulldown menu system.
  118.  
  119. In submenu #2 a demonstration is provided to show how you
  120. can get a selection from the popup menu, do something, and then
  121. return to the popup menu instead of the main pulldown menu
  122. system.
  123.  
  124.  
  125. PULLDOWN MENU INITILAIZATION
  126.  
  127. An example of how to initialize the main pulldown menu, submenu
  128. and popup menu system is shown in the demo file.  You are limited
  129. to 10 headers, 10 submenu entries, and 21 characters on any popup
  130. menu line.  You don't have to initialize the unused portions of
  131. the data structures.  Make sure that you set DirectVideo to TRUE
  132. in your program so that the screen writes occur as fast as
  133. possible.
  134.  
  135. Before you call Make_Menu, you must initialize the array that is
  136. passed to the procedure in PULLDOWN.TPU.  The initialization
  137. consists of loading the menu entries in the array.  I suggest
  138. that you keep the initialization as a callable procdure as shown
  139. in the demo file, rather than initializing in the body of your
  140. code.  It's cleaner that way.
  141.  
  142.  
  143. THE FREE PART
  144.  
  145. You can use these routines in programs that are for non-
  146. commercial use only.  If you have a commercial application,
  147. contact me to arrange booty.  I am cheap, so don't worry.
  148.  
  149.  
  150. THE MONEY PART
  151.  
  152. If you provide me with $20, I'll provide you with the source code
  153. (on disk) in Turbo Pascal Version 4.0 and (when I finish the
  154. conversion) the source code for Turbo C and Microsoft Quick C.
  155. That way you can modify the code to contain more entries, stacked
  156. windows, or what ever you want.
  157.  
  158. If you're into charities, consider this my "I have to replace the
  159. rugs in my house 'cause my German Shepard has a leaky bladder"
  160. Fund.  Donations are not tax deductable, but are highly
  161. appreciated.  Its for an old dog.
  162.  
  163. Regardless, I would like to hear your suggestions for future
  164. releases.
  165.  
  166. I can be reached at the following locations:
  167.  
  168.  
  169. David Sampson
  170. P.O. Box 060573
  171. Palm Bay, FL  32906
  172.  
  173.  
  174. Or on-line at the EXEC-PC (415) 964-5160.
  175.  
  176.  
  177.  
  178. At present the EXEC-PC costs $45 per year for access, but it's
  179. well worth it.  There are > 23 lines going in, > 1 Gigabit disk
  180. storage, > 8000 public domain files, > 700 entries in the PC Blue
  181. Library, and lots of talented people that use the message system
  182. and are more than glad to help with programming related problems.
  183.  
  184.  
  185. REVISION RECORD
  186.  
  187. PULLDOWN.TPU   Version 1.0  - Initial Release
  188.