
          ---------------------------------------------------------
           Multiple selection picklist function for FiveWin v1.9.1
          ---------------------------------------------------------

  This .zip file should contain the following files:

    MSELECT.PRG   source code for MultiSelect() and it's support routines
    MSELECT.OBJ   MSELECT.PRG compiled with Clipper 5.2e
    MSDEMO.PRG    source code for demonstration module
    MSDEMO.OBJ    MSDEMO.PRG compiled with Clipper 5.2e
    MSDEMO.RMK    RMAKE.EXE script file
    MSDEMO.LNK    BLINKER.EXE script file
    README.TXT    Text file you're currently reading

  Description
  -----------
  MultiSelect() is exactly what the name implies... a multiple selection
  picklist function. The dialog box displays two sorted lists. One of which
  contains items that are available to be selected. These items can be
  selected in groups, individually or the whole lot can be selected. By
  clicking on the appropriate 'Add' buttons, the highlighted items can be
  added to the other list. Once in that list, items can be highlighted
  either individually or in groups and deleted from the list via the
  'Remove' buttons. The right mouse button can be used in either list to
  emulate the actions of the 'Add' and 'Remove' buttons, thereby reducing
  movement of the mouse. Optionally, the list of 'selected' items can be
  pre-populated, giving the user a default set of selections. When this is
  done, a 'Default' button is placed in the dialog, allowing the user to
  restore the 'selected' list to it's initial state. Items can be shuffled
  back and forth until the cows come home. When the user has made his/her
  selections, clicking on the 'OK' button will return an array containing
  the items in the 'selected' list. If the user clicks the 'Cancel' button,
  an empty array is returned. The calling routine should check for this
  condition and take the appropriate action. If there's something you'd like
  to change, you've got the source code... go for it! However, I'd like to
  hear about any improvements you make. If you've got any suggestions or
  questions, please let me know. If someone takes the time to create a
  MultiSelect class, I'd certainly be interested in it.

  I've provided a very simple demonstration module; MSDEMO.PRG, which allows
  you to experiment and play around with MultiSelect(). MSDEMO.PRG is pretty
  straight forward, so I've not put much effort into it's documentation.
  Because of it's complexity and use of concepts which are new to me, and I
  assume others as well, I've tried to place comments wherever they might be
  needed in MultiSelect().


  10 Feb 96
  Patrick K. Spence
  pkspence@conc.tdsnet.com


