                  WELCOME TO TECHNOJOCK'S OBJECT TOOLKIT
                  --------------------------------------

  This README file contains important information about TechnoJock's
  Object Toolkit (TOT) version 1.10. For the latest information about
  TOT, the accompanying programs and the manual, read this file in
  its entirety. To print this file, just press T and specify a printer
  port or a filename.


                  TABLE OF CONTENTS
                  -----------------
                  1.  Usage Hints
                  2.  Using the Demos
                  3.  TOT Enhancements and Undocumented Features
                  4.  The Norton Guides TOT Database
                  5.  Files on the Disks
                  6.  Shareware
                  7.  Printing the Manual
                  8.  Installation
                  9.  Association of Shareware Professionals

              +----------------------------------------------+
              |  P a r t   1    -    U s a g e   H i n t s   |
              +----------------------------------------------+

Many of you will want to start using the Toolkit immediately. However, we
really do recommend that you read the first three chapters of the User's 
Manual before you start coding. Ideally, you should read the entire 
manual - after all, we wrote it in the hope that you would!

If you insist on using the Toolkit without reading the documentation, at 
least follow these hints:

   1)  The Toolkit includes the following, globally declared and initialized
       objects:

              SCREEN       - for writing to the visible screen
              KEY          - for accessing the keyboard
              MOUSE        - for controlling the mouse location and shape
              MONITOR^     - a POINTER to an object controlling display 
                             characteristics
              LOOKtot^     - a POINTER to an object controlling default 
                             colors, etc. 
              SHADOWtot^   - a POINTER to an object controlling shadow
                             characteristics
              SCROLLtot^   - a POINTER to an object controlling scroll bar
                             characteristics
              DATEtot^     - a POINTER to an object controlling date
                             characteristics
              IOtot^       - a POINTER to an object controlling the form
                             input defaults
              ALPHABETtot^ - a POINTER to an object controlling how the
                             TOOLKIT manipulates upper- and lower-case chars

   2)   If you create any other object instances (i.e. variables), make
        sure you call the INIT method before any others, and the DONE method
        when you are finished. The following code fragment illustrates how you
        could use the ScreenOBJ object to save and restore the visible screen:

             var  SaveScreen: ScreenOBJ;
             begin
                SaveScreen.Init;
                SaveScreen.Save;
                {...}
                {other procs which write to the screen}
                {...}
                SaveScreen.Display;
                SaveScreen.Done;
             end;

        IMPORTANT NOTE: don't call the INIT and DONE methods for the
        global instances described in hint 1).

   3)   Enable the FINAL directive in the TOTFLAGS.INC file to minimize
        program size.

   4)   Run the demos to see how each unit can be used (discussed next).

            +---------------------------------------------------+
            |  P a r t   2    -    U s i n g  t h e  D e m o s  |
            +---------------------------------------------------+

There are over 80 demo programs in the Toolkit. The majority of these 
demos are designed to illustrate a specific finite part of the Toolkit. They 
are referred to at the appropriate places in the documentation. Listed below 
is a summary of the demo files:

                     DEMBR1-5    Browse demos   
                     DEMBX1-3    Box demos
                     DEMCU1      Cursor demo
                     DEMDR1-7    Directory demos
                     DEMDT1-2    Date demos
                     DEMEX1-2    DOS EXEC demos
                     DEMFS1-2    Screen writing demo
                     DEMIN1-4    Keyboard and mouse input demo
                     DEMIO1-24   Form Input demos
                     DEMLK1-2    Link list demos
                     DEMLS1-9    List demos
                     DEMMN1-9A   Menu emos
                     DEMMS1-8    Message demos
                     DEMOV1-2    Overlay demos
                     DEMSC1      Scroll bar demo
                     DEMSH1      Shadow demo
                     DEMST1-3    String demos
                     DEMSY1      System demo
                     DEMVI1      Virtual screen demo
                     DEMWI1-4    Window demos
                     DEMWR1      Screen writing demo
                     EXTDEM1-8   Extension demos
                     TOTDEMO     Overall Demo

If your goal is to appreciate the power of the Toolkit, then consider 
running the following demos (as well as being educational, they have visual 
impact):
                      TOTDEMO
                      DEMIO21,22
                      DEMLS9
                      DEMMN9
                      DEMBR5

A special thank-you to George Butts and George Bean, two Toolkit users who
have generously given us some programs they developed with the Toolkit. Try 
running the programs
          
                     TBROWSE
                     TELE

to see how easy the Toolkit is to use!
  

              +-----------------------------------------------+
              |  P a r t   3    -    E n h a n c e m e n t s  |
              +-----------------------------------------------+

This section identifies any last minute changes that have been made since
the documentation was printed. The following topics are discussed:

                  1) International Customization
                  2) Additions to totMISC
                  3) Key Constants
                  4) Further IO Extensions
                  5) Additional Methods
                  6) Overlaying the Toolkit

1) INTERNATIONAL CONSIDERATIONS
===============================
The TOTIO2.PAS unit includes the following declarations:

   CONST
   NumberError: array[1..2] of string[60] =
   (' The number you entered is out of range. ',
    ' Enter a number in the following range: ');
   DateError: array[1..6] of string[60] = 
   (' The date you entered is invalid. ',
    ' Enter a date in the format:',
    ' The date you entered is too early. ',
    ' The earliest acceptable date is: ',
    ' The date you entered is too late. ',
    ' The latest acceptable date is: ');

NumberError is an array of strings with two elements. These two elements
represent the text that is displayed if an out-of-range value is
entered in an IO field. 

DateError is an array of strings with six elements. This array includes
three pairs of strings which represent the various messages which are
displayed when an invalid or out-of-range date is entered in a date field.

Similarly, the totLINK unit includes the following declaration:
  Const
  NoFiles: string[20] = 'No Files';

The text is displayed in directory listings when no file is found.

You may customize these messages as necessary.

Refer to the Toolkit documentation on AlphabetTOT and DateTOT for other
customization considerations.


2) ADDITIONS to TOTMISC
=======================
The following procedures and functions have been added to the totMISC
unit, and are not discussed in the manual:

  function  DeleteFile(Filename:string): shortint;
       Deletes a file from the disk, and returns a shortint code as
       follows:     -1    File not found
                     0    File deleted
                     1    Error - file not deleted.  

  function  RenameFile(Oldname,NewName:string):shortint;
       Renames a file, and returns a shortint code as
       follows:      0 file renamed
                     1 file not found
                     2 rename failed

  function  ValidFileName(FN:string): shortint;
       Checks a fully qualified filename to see if it is valid, and
       returns a shortint code as follows: 
          -1     Path and name OK but file does not exist
           0     Path and name OK and file exists
           1     Illegal drive specifier
           2     Illegal characters in path
           3     Invalid Path
           4     No file specified
           5     Illegal Characters in name
           6     Name longer than eight characters
           7     Extension longer than three characters

  function  ParamLine: String;
       Returns a string identifying all the items that were typed on
       the command line after the program name. Each item is separated by
       a single space, i.e. ' '.

  function  ParamVal(Marker:string): string;
       Searches the parameters (typed when the program was executed) for
       'Marker' and returns the item following.

  function  Frequency(Match:string;Source:string): byte;
       Returns the number of occurences of match in Source.

  procedure ResetStartUpMode;
       Sets the display mode and cursor style to the setting that was
       active when the program was first executed.

The remaining three functions are used to run child programs, but remember to
use the $M compiler directive to leave some memory for the child process.
Refer to the demo files DEMEX1-2 for more information. All three functions
return the Turbo Pascal DOSERROR code generated when the command was 
executed.

  function  RunAnything(Command: string):integer;
      Runs any DOS command or file with a BAT, COM or EXE extension, just
      as though you had typed the command at DOS. This function uses a
      secondary copy of COMMAND.COM.

  function  RunEXECOM(Progname, Params: string):integer;
      Runs any EXE or COM program without needing a second installation
      of COMMAND.COM. Progname is the name of the program, and Params is a
      string representing the passed parameters.

  function  RunDOS(Msg:string):integer;
      Drops the user to the DOS prompt. The user returns to the program
      by typing EXIT. The Msg string parameter will be displayed as the
      user is dropped to DOS. Normally, you should save the screen before
      calling this function, and restore the screen when the user returns.

3) Key Constants
================
  A new unit, totKEY, has been included in the Toolkit. This unit includes
  a set of global constants which represent the various keys which are
  recognized by the Toolkit. All the constants begin with the letter k, and
  may be followed by Alt, Ctl or Sft (for Alt, Ctrl and shift) as appropriate.
  
  For example, if you use totKEY in your program, you can use kF1 instead
  of 315. Whilst easy to use, this unit does use some memory, and if
  you are tight on memory, you may want to use 315!

4) Further IO Extensions
========================
  The unit EXTIO2.PAS provides (yet) another field type, namely, 
  HotspotIOOBJ. This field allows you to designate any rectangular
  area of the screen as a hot spot, and if the mouse is clicked in the
  area, any of the tAction codes can be returned. The only method you should
  call is the constructor which is defined as follows:

   constructor Init(X1,Y1,X2,Y2: byte;Act:tAction);

  This new object provides a way of integrating a status bar and a pull-down
  menu with an IO session. The new demo file EXTENV1.PAS illustrates this
  form of usage.

  The unit EXTIO3.PAS provides the objects DropArrayIOOBJ and DropLinkIOOBJ
  both of which are descended from DropIOOBJ. These objects provide "drop-
  down" lists similar to those used in Windows, and in Turbo's History
  List fields. Refer to the source file for further information

  LEAVE FIELD HOOKS - a leave field hook can be used to validate whether
  a field has acceptable data. The field hook procedure can be used to 
  stop a user from exiting a field (by pressing TAB etc) by setting the
  value of the Field ID passed parameter to StayPut. StayPut is a constant
  declared in the TOTIO2 unit. See the demo file DEMIO24 for a full example.

5) Additional Methods
=====================

  A) TOTWIN - the method SetWinRestrict(On:boolean) has been added to
     WinOBJ. This allows you to instruct the Toolkit whether to set
     local window coordinates when a window is drawn.

  B) TOTINPUT - the method SetForceOff(On:boolean) has been added to
     the MouseOBJ object. When set to true, the Toolkit is restricted from
     displaying the mouse cursor on systems with a mouse installed. To run
     a non-mousable (!) application on a system, you must call the following
     two methods at the begininning of your program:

                 Key.SetMouseMethod(0);
                 Mouse.SetForceOff(true);

     The method SetSlowDelay has been added to the KeyOBJ to allow the setting
     of the length of time to wait for a second click of the mouse, i.e. a 
     double click. The syntax of this procedure method is as follows:

       procedure KeyOBJ.SetSlowDelay(Del:integer);


  C) TOTIO2 - the method SetValue(Hi:integer) has been added to the ListIOOBJ
     method and is inherited by LinkIOOBJ and ArrayIOOBJ. This method allows 
     you to set the value of the selected item in the list.

     The function method IsNull:boolean has been added to all objects
     descended from SingleLineIOOBJ. This boolean function method returns
     true if the field is empty.

  D) TOTLIST - the method GetSelectedPick was added to ListOBJ. This function
     method is passed no parameters, and returns the node number, or array
     index number of the highlighted item.

  E) TOTLIST - the method SetChangeDir was added to ListDirOBJ. This method
     is passed a single boolean parameter. When false is passed, the user
     can select a directory, i.e. when Enter is pressed, the highlighted
     directory is returned (rather than changing to the selected directory).

  F) TOTIO1 - the method StopID was added to FormOBJ. This method returns
     the ID of the active field (i.e. the one containing the cursor) at the
     time the input edit session was terminated.

  G) TOTLIST - The method RefreshList was Added to LinkIOOBJ. Call this
     method if you delete or add nodes to the link list attached to the
     IO field


6) OVERLAYING THE TOOLKIT
=========================

There are some inaccuracies in the Overlay section of chapter 3 (page 3-7)
refer to the file OVERLAY.DOC for further information.

             +--------------------------------------------------+
             |  P a r t   4    -    N o r t o n   G u i d e s   |
             +--------------------------------------------------+

If you have a copy of the Norton Guides On-Line database engine, you are 
in luck. The Toolkit inludes file TOT.NG is a Norton Help Guide to the 
Toolkit. If you own the Norton Guides, you can use TOT.NG to provide you with 
a degree of on-line help. If you don't own the Norton Guides, don't buy it 
just to use TOT.NG, you're not missing that much!! 

          +--------------------------------------------------------+
          |  P a r t   5    -    F i l e s  o n   t h e   D i s k  |
          +--------------------------------------------------------+

The following files are included in the Toolkit:

Source Files:

             EXTFAST  PAS        Extensions to totFAST
             EXTIO    PAS        Extensions to totIO
             EXTLINK  PAS        Extensions to totLINK
             EXTWIN   PAS        Extensions to totWIN
             TOTBUILD PAS        Program for building all units
             TOTDATE  PAS        Date management
             TOTDIR   PAS        Directory display and file selection
             TOTFAST  ASM        Assembly module for screen writing
             TOTFAST  OBJ        Object file for TOTFAST.ASM
             TOTFAST  PAS        Screen writing 
             TOTFLAGS INC        Conditional defines and compiler directives
             TOTINPUT PAS        Keyboard and mouse control
             TOTIO1   PAS        Input objects
             TOTIO2   PAS        Input objects
             TOTIO2   INC        Input objects
             TOTIO3   PAS        Input objects
             TOTKEY   PAS        Key constants 
             TOTLINK  PAS        Linked list manager
             TOTLIST  PAS        Browse and list windows
             TOTLOOK  PAS        Controls overall color defaults
             TOTMENU  PAS        Menus
             TOTMENU  INC        Menus
             TOTMISC  PAS        Miscellaneous procedures and functions
             TOTMSG   PAS        Message windows
             TOTOVL   PAS        An overlay unit template
             TOTREAL  PAS        Real type declarations
             TOTSTR   PAS        String manipulation
             TOTSYS   PAS        Hardware 
             TOTWIN   PAS        Window management

Demonstration Files

             TOTDEMO  PAS        The main show-off demo program
             DEMXXXX  PAS        Smaller demo programs (see section 2 above)
             DEMXXXX  TXT,DBF    Resource files used by demo programs
             EXTDEMX  PAS        Extending the Toolkit demos

Documentation Files

             XXXXXXX  TXT        On-disk documentation (see section 7 below)

Miscellaneous Files
   
             INSTALL  EXE       The Toolkit installation program
             OVERLAY  DOC       Unit Dependencies for Overlay Initialization
             README   COM       This file!
             REGISTER DOC       Registration data for Toolkit evaluators
             VENDOR   DOC       Instructions and restrictions for ShareWare
                                vendors.


              +-----------------------------------------+
              |  P a r t   6    -    S H A R E W A R E  |
              +-----------------------------------------+

                    HERE'S HOW SHAREWARE WORKS:

You are encouraged to copy the TOT diskettes and share them freely with
others. You have the luxury of trying out the complete programs, at your own
pace and in the comfort of your own home or workplace. This is not a crippled
or demo copy, but the complete working version of the program.

After you have used TOT for a reasonable evaluation period (not to exceed
90 days) you must either stop using it or buy a licensed copy from TechnoJock
Software, Inc. or from an authorized dealer. The file REGISTER.DOC includes
all the information you need to buy the Toolkit. If you cannot find the file,
or if you have any questions, don't hestitate to call or write to:

                      TechnoJock Software, Inc.
                      PO Box 820927
                      Houston TX 77282
                      USA

                      Voice (713) 493-6354
                      Fax   (713) 493-5872

                      Compuserve 74017,227
                      MCI Mail   TECHNOJOCK


Why pay at all?
----------------------------------------------------------------------
   *  You receive the most CURRENT copy of the program
   *  You receive the printed manuals (typeset and bound) and Quick Reference
   *  Notification of updates and new products
   *  Your input and ideas help shape future products
   *  A sense of pride and ownership, by having honestly participated
      in the Shareware revolution
   *  The satisfaction of helping to keep software prices down, by supporting
      a distribution method which doesn't depend on expensive advertising
      campaigns

So please dive in and enjoy the fun of legally sharing good software with
your friends and associates. The following restrictions are designed to
protect the community of Shareware users and to prevent others from taking
unfair advantage of the trust, hard work and good will of Shareware authors.
Exceptions to these conditions must be received in writing from TechnoJock
Software, Inc.

                  +-----------------------------+
                  |  DISTRIBUTION RESTRICTIONS  |
                  +-----------------------------+

1. Disk vendors (those who sell Shareware disks for a profit) must follow
   the procedure outlined in the "VENDOR.DOC" file.
2. You may not charge more than $6 U.S. per diskette.
3. The files and programs on the disks may not be modified or deleted.
4. The programs cannot be sold as part of some other more inclusive package.
5. The programs cannot be rented or leased to others.
6. When distributed via a telecommunications link, all TechnoJock programs
   (and documentation files) must be transferred in a library or archive
   format. This means that all the files on each TechnoJock disk must be
   combined into one file - one file for each TechnoJock disk.


If you are distributing the files on a BBS, then the following four
archive files must be available :

                  TOTSRC  - Source code files, REGISTER.DOC and README
                  TOTDOC  - Documentation files
                  TOTDEM  - Demonstration files
                  TOTNG   - Norton Guides file


       +-----------------------------------------------------------+
       |  P a r t  7   -    P R I N T I N G   T H E   M A N U A L  |
       +-----------------------------------------------------------+

If you did not purchase TOT (complete with printed manual) directly
from TechnoJock Software, Inc., or from an authorized dealer, then you are 
evaluating the program.

We have tried to provide you with everything necessary to evaluate TOT,
including all the documentation, demo programs and source code. All the 
documentation files have a TXT extension and the following files are
provided:

     Filename          Description
     ------------      -------------------------------------------
     INFO     TXT      A brief description of the on-disk documentation

Part 1 - User's Guide
     CHAPT1   TXT      Chapter 1     Introduction
     CHAPT2   TXT      Chapter 2     Getting Started
     CHAPT3   TXT      Chapter 3     Toolkit Basics
     CHAPT4   TXT      Chapter 4     Determining & Controlling Hardware
     CHAPT5   TXT      Chapter 5     Writing to the Screen
     CHAPT6   TXT      Chapter 6     Keyboard & Mouse Input
     CHAPT7   TXT      Chapter 7     Using Windows
     CHAPT8   TXT      Chapter 8     Displaying Messages and Prompts
     CHAPT9   TXT      Chapter 9     Managing Lists
     CHAPT10  TXT      Chapter 10    Displaying Directories
     CHAPT11  TXT      Chapter 11    Controlling User Input
     CHAPT12  TXT      Chapter 12    Menus Menus Menus
     CHAPT13  TXT      Chapter 13    Managing Dates
     CHAPT14  TXT      Chapter 14    String Handling
     CHAPT15  TXT      Chapter 15    Miscellaneous
                                     
Part 2 - Extending the Toolkit       
     CHAPT16  TXT      Chapter 16    OOP Principles
     CHAPT17  TXT      Chapter 17    Replacing The Screen Writer
     CHAPT18  TXT      Chapter 18    Extending Windows
     CHAPT19  TXT      Chapter 19    Customizing Linked Lists
     CHAPT20  TXT      Chapter 20    Extending Input Field Types

Part 3 - Flash Cards
     FLASH    TXT      A Not-Too-Quick Reference

Remember there is no substitute for the bound manuals which include
multiple indexes, screen shots and diagrams, and a quick reference. 
Each TXT file represents a chapter of the User's manual or Flash Cards. Each 
file includes running headers, and there is an embedded formfeed character 
at least every 60 lines. To print the documentation you can copy each file
to the printer using the syntax

               COPY file.TXT PRN

or you can import the file into your word processor. Just have a lot of paper 
ready!!



    +-----------------------------------------------------------------+
    |  P a r t  8   -    I n s t a l l i n g   t h e   T o o l k i t  |
    +-----------------------------------------------------------------+

Refer to the beginning of Chapter 2 - Getting Started for a description
of how to install the Toolkit.


       +------------------------------------------------------------+
       |  P a r t  9   -    Association of Shareware Professionals  |
       +------------------------------------------------------------+

                          _______
                     ____|__     |                  (R)
                  --|       |    |-------------------
                    |   ____|__  |  Association of
                    |  |       |_|  Shareware
                    |__|   o   |    Professionals
                  -----|   |   |---------------------
                       |___|___|    MEMBER


Bob Ainsbury, VP Software Development at TechnoJock Software, Inc., is a 
member of the Association of Shareware  Professionals (ASP). ASP wants to 
make sure that the shareware principle works for you. If you are unable to 
resolve a shareware-related problem with an ASP member by contacting the 
member directly, ASP may be able to help. The ASP Ombudsman can help you 
resolve a dispute or problem with an ASP member, but does not provide 
technical support for members' products. Please write to the ASP Ombudsman 
at 545 Grover Road, Muskegon, MI 49442 or send a Compuserve message via 
easyplex to ASP Ombudsman 70007,3536.



                          That's All, Folks!
