                                                         John Fretwell
                                                       CIS #70751,3560


MGET Overview

If you've wanted to incorporate memo fields into your screens but found the
available methods cumbersome and confusing to users, then you've downloaded
the answer.

MGET will let you incorporate memofields into the getlist seamlessly and
easily. It will allow users to enter data into memofields without having to
press a special key to go into memoedit. Most get navigation keys work with
memogets just as they do with normal gets. This allows the user to press
K_UP, K_DOWN, K_TAB, K_SH_TAB to move between gets, regardless of whether
they are moving to a memoget or a regular get.

Once the user is in the memoget, they can enter data freely using standard
memoedit editing keys. Of course, if they press a K_UP on the first line of
the memoget they will go to the previous get and a K_DOWN on the last line
will take them to the next get. You can set a limit on the max number of
characters they can enter if you desire.


Usage

These memogets are all Clipper code, so you just link in MEMOGET.OBJ and
include MGET.CH to use the MEMOGET command. MemoLimitBlock() allows you to
post a code block which will be evaluated when the user exceeds a memolimit.
The default block is {|| .T. }. See the demo program for an example.

Using memogets is made very easy by the preprocessor. The syntax is as
follows:

   @ <tRow>, <lCol>, <bRow>, <rCol> MEMOGET <cVar>               ;
                                   [WHEN  <when>]                ;
                                   [VALID <valid>]               ;
                                   [COLOR <cColor>]              ;
                                   [LIMIT <nLimit>]

  WHEN and VALID clauses work as expected with the only caveat being that you
  should not try to change the buffer from within the when or valid.

  COLOR sets the unselected/selected color of the memoget.

  LIMIT sets the maximum number of characters that can be entered. This option
  might cause slowdowns if you try to set a high limit, but should cause no
  noticeable delay for limits of less than approximately 10,000 characters.
  This clause must be the last one specified if it is used.


Notes

The demonstration version is completely functional so you can put it into your
own programs to make sure it will fulfill your needs. It does play a tune upon
program startup, but is otherwise identical to the registered version.

Source code is included when you purchase the registered version and it is
100% Clipper so you can modify anything about MGet. Clipper 5.2 is required.
Support is available to registered users via CIS email or letter.
