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!