home *** CD-ROM | disk | FTP | other *** search
/ Collection of Education / collectionofeducationcarat1997.iso / COMPUSCI / TOT11.ZIP / TOTDOC11.ZIP / CHAPT8.TXT < prev    next >
Text File  |  1991-02-11  |  17KB  |  396 lines

  1.                                                                       Displaying
  2.                                                                         Messages
  3.                                                                                &
  4.                                                                          Prompts
  5.  
  6.  
  7.  
  8.          "As Miss America, my goal is to bring peace to the entire world and
  9.          then to get my own apartment."
  10.  
  11.                                                                         Jay Leno
  12.  
  13.  
  14.  
  15. Introduction
  16.          The totMSG unit includes a variety of easy-to-use objects for display-
  17.          ing messages and prompts. A message is simply a pop-up window which is
  18.          displayed until the user presses [KEYCAP], [KEYCAP], or clicks the
  19.          mouse on the close icon/button. Similarly, a prompt is a pop-up window,
  20.          but the user must select one of the options displayed at the bottom of
  21.          the window. A prompt window can have two or three buttons. The buttons
  22.          come in two varieties: strip-buttons like the ones used in the Turbo
  23.          Pascal IDE, and box-buttons like the ones used by PC Tools and the
  24.          Norton Utilities.
  25.  
  26.  
  27.  
  28. The Object Hierarchy
  29.          Figure 8.1 illustrates the object hierarchy for the totMSG unit. The
  30.          base (or primitive) object is BaseMessageOBJ, and all the other messag-
  31.          ing objects descend from it. You should never declare an instance of
  32.          type BaseMessageOBJ, as it is an abstract object. Use one of the
  33.          following four descendant objects:
  34.  
  35.          MessageOBJ         This is the basic message displaying object. Between
  36.                             one and twenty lines of text can be displayed in a
  37.                             moveable window. At the bottom of the window is a
  38.                             single strip-button, which defaults to the text
  39.                             "OK".  The user removes the window by clicking the
  40.                             mouse on the button or close icon, or by pressing
  41.                             [KEYCAP] or [KEYCAP].
  42.          ButtonMessageOBJ   This object is a descendant of MessageOBJ and
  43.                             operates in the same way. The only difference is
  44.                             that the button is a box-button.
  45.  
  46.          PromptOBJ          The PromptOBJ object is descendant from the BaseMes-
  47.                             sageOBJ, and should be used when you want to prompt
  48.                             the user to choose a specific option. A message is
  49.                             displayed in a moveable window, and two or three
  50.                             strip-buttons are displayed. The user removes the
  51.                             window by clicking on one of the buttons or the
  52.                             close icon, or by pressing [KEYCAP]. The buttons can
  53.  
  54. 8-2                                                                 User's Guide
  55. --------------------------------------------------------------------------------
  56.  
  57.                             be selected in one of three ways: clicking on the
  58.                             button, tabbing to a button and pressing [KEYCAP],
  59.                             or pressing a button hotkey.
  60.  
  61.          ButtonPromptOBJ    This objects displays box-buttons, but in all other
  62.                             aspects it operates like PromptOBJ.
  63.  
  64.  
  65. Figure 8.1                                                             [PICTURE]
  66. Message
  67. Object Hierarchy
  68.          This combination of objects provides you with ways of displaying
  69.          single, double and triple button messages, using strip- or box-buttons.
  70.          The decision to use strip- or box-buttons is solely cosmetic. The
  71.          strip-buttons are more "elegant", but the box-buttons are larger and
  72.          easier to select with the mouse.
  73.  
  74. Common Methods
  75.  
  76.          Since all the objects are derived from the BaseMessageOBJ, they share a
  77.          set of common methods. The following three methods can (and should) be
  78.          used with any of the messaging objects:
  79.  
  80.          Init(Style:byte;Tit:string);
  81.  
  82.          The Init method is passed two parameters. The first is the window box
  83.          style, and the second, the window title. Refer to 5-7 for a discussion
  84.          of box styles and titles. As always, this method must be called before
  85.          any other.
  86.  
  87.          AddLine(Str:string);
  88.  
  89.          Call this method to add a line of text to the method. For example, if
  90.          you want to display five lines of text, call AddLine five times. Up to
  91.          twenty lines of text can be displayed in a message. The text should be
  92.          no more than seventy characters long. The first line of text is always
  93.          displayed on the first line of the window, i.e. immediately below the
  94.          title. To force a space between the title and the text, call AddLine
  95.          with an empty string, e.g. AddLine('');.  Similarly, the buttons are
  96.          positioned directly below the last line of text. Just call Addline with
  97.          an empty string to force a gap between the text and the buttons. The
  98.          Toolkit automatically computes the size of the message window based on
  99.          the number of lines added, the width of the longest line, and the style
  100.          of button selected.
  101.  
  102.          WinForm: WinFormPtr;
  103.  
  104.  
  105.  
  106. Messages & Prompts                                                           8-3
  107. --------------------------------------------------------------------------------
  108.  
  109.          This function method returns a pointer to the Toolkit WinFormOBJ object
  110.          which is used to manage user input while the message is being dis-
  111.          played. You can use this function method to directly access the WinFor-
  112.          mOBJ methods with the following syntax: WinForm^.method. Refer to
  113.          chapter 11: Controlling User Input for a full discussion of WinFormOBJ.
  114.  
  115.  
  116.  
  117.            Note: the colors used by the message objects are derived from two
  118.            sources. The display of the window border and the message text is
  119.            controlled by the window settings used by the WinForm object.
  120.            Although this object is not discussed until chapter 11, it is
  121.            worthwhile noting that you can modify the window colors with the
  122.            following method call: WinForm^.Win^.SetColors. For example:
  123.                     MyMsg.WinForm^.Win^.SetColors(23,31,30,28);
  124.            The display color of the message buttons are controlled by the
  125.            default colors set in the global instance IOTOT. The following
  126.            method can be used to change the button colors: IOTOT^.SetColBut-
  127.            ton. For example:
  128.                     IOTOT^.SetColButton(32,46,47,46);
  129.            Refer to chapter 11 for further information.
  130.  
  131.  
  132.  
  133. 8-4                                                                 User's Guide
  134. --------------------------------------------------------------------------------
  135.  
  136.          Done;
  137.  
  138.          This method disposes of all the memory used by the object instance, and
  139.          should always be called.
  140.  
  141.  
  142.  
  143. Simple Messages
  144.  
  145.          The MessageOBJ and ButtonMessageOBJ objects are used for displaying
  146.          simple messages, i.e. an informational message where you don't want the
  147.          user to make a selection. The user just reads the message and removes
  148.          it.
  149.          Both these objects include the following method:
  150.  
  151.  
  152.          Show;
  153.          This method instructs the Toolkit to display the message window.
  154.  
  155.  
  156.          Listed below is the (by now familiar) example DEMMS1.PAS, followed by
  157.          figure 8.2 which illustrates the generated display.
  158.          program DemoMessageOne;
  159.          {demms1 - simple message}
  160.  
  161.          Uses DOS, CRT,
  162.               totFAST, totMSG;
  163.          Var
  164.             MsgWin : MessageOBJ;
  165.  
  166.          begin
  167.             Screen.Clear(white,'░'); {paint the screen}
  168.             with MsgWin do
  169.             begin
  170.                Init(1,' Message ');
  171.                AddLine('');
  172.