Contents of the HLPSYS87.DOC file
Updated Helpsys - 5/26/88
Author: Ed Crawford
11016 N. Biltmore Dr. #3238
Phoenix, Az. 85029
Source ID# NAN471
subject: Universal Help system using a help file with a memo field
This is a way to include help in any application you write. The general
idea is that you create a help database indexed on procedure name+variable
and when the help system is called, it does a seek on this file and displays
the associated memo field at the specified coordinates. This in itself is
a good idea but the real nice addition is a "build" procedure that is called
while running the finished application, that can modify and add the help
screens on line without exiting your application.
In response to an inquiry by one of you users who have downloaded and
made use of this little add on program, I have taken a little time to
update the files a bit for the Summer87 release of Clipper. As you
probably know, Nantucket did some work on the memoedit function. This
function is now an extremely useful tool, it is now a very nice match
for this type of application.
The system was changed in several areas. The help program was changed
the most in that it now checks the size of the help window and the memo
field and calls memoedit in two different ways depending on the results
of the calculations. If the memo field is longer than the window will
hold, the user is allowed to scroll thru the window and press the escape
key when he/she is finished. If it is small enough to fit inside the
window in one shot, memoedit is called with a user function to bounce
out of the window immediately (like the old version did).
The Build function was changed to show the actual window as it is being
built. The video speed of the new compiler is really a site to behold,
a routine like this with the Autumn version would have shown an un-
acceptable flicker. The new one, on a fast machine, is just a wink.
The old version also had a nasty little bug in it, the help database
only had space for an 8 character variable name. I don't know what I
was thinking of, we all know that variable names can be as long as 10
characters. When you stored a help screen for a variable name of
9 or 10 characters, the screen would never be found. Oops, sorry.
To add this system to your application just add the line:" SET KEY 291
TO BUILD" in your entry procedure and compile and link the two programs
"HELP.PRG" and "BUILD.PRG" included in this file to your application.
Then create a help.dbf with the following structure:
program c 8
variable c 10 index file: help.ntx
r1 c 2 key : program+variable
c1 c 2
r2 c 2
c2 c 2
Then run your application normally. Any point in your application where the
program is waiting for input of a variable the build procedure may be called
by pressing the alt+h key. The cursor will be positioned at the top left of
the screen or the top left corner of a previously defined help screen. Move
the cursor with the arrow keys or press return to accept the previously def-
ined window coordinate.
If a previous help screen is being edited, the entire window will now be
outlined. Otherwise a small square will appear from the coordinate of the
upper left corner. Just move the lower right hand corner to any desired
location (below and to the right of course). Press the return key to accept
the window and continue into the text edit.
Note: When you are adding the memo you are able to scroll the screen and add
more information than you can display in one window. If you do this the
screen will be presented to the user when the F1 key is pressed and they will
be able to freely scroll about the window until the escape key is pressed.
If you have a lot of information to show, this is a good way to do it. My
suggestion, though, is to limit the help to one screen. That way it keeps
it simple for the novice user and will return to the application with any
DEMO COMPILING PROCEDURE:
Put the files contained in this archive into a directory by themselves. Make
sure that Clipper and Plink86 are in the path. type 'COMPILE', then type
'PLINK86 @TEST'. If Clipper is not on the current drive in the Clipper dir-
ectory, the TEST.LNK file must be edited to change the directory reference.