home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-02-05 | 163.3 KB | 5,692 lines |
- TECHNOJOCK'S TURBO TOOLKIT v5.0
-
-
-
- Copyright 1986, 1989 TechnoJock Software, Inc.
- All Rights Reserved
- Restricted by License
-
-
-
-
- The software described in this manual is protected by copyright laws.
- Information in this manual is subject to change without notice and does not
- represent any commitment on the part of TechnoJock Software, Inc.
-
- Thank-you for reviewing TechnoJock's Turbo Toolkit v5.0. This file is an
- abridged version of the user guide, but does contain approximately 100
- pages of information about the Toolkit, including a comprehensive procedure
- reference in alphabetic order. The on-disk version of the manual excludes
- the illustrations and formatting niceties that are included in the printed
- manual.
-
- If you register the Toolkit, you will receive a 300 page typeset manual,
- including a pull-out quick reference. Refer to the file Register.Doc for
- registration information.
-
-
-
-
-
-
-
- CHAPTER 1 - TOOLKIT BASICS
- ==========================
-
- What is the Toolkit?
-
- TechnoJock's Turbo Toolkit software is a collection of procedures and
- functions for Turbo Pascal programmers. The Toolkit will reduce the time
- taken to write applications and is designed for novice and expert
- programmer alike.
-
- The real purpose of the Toolkit is to provide easy-to-implement procedures
- that free the programmer from the more tedious and repetitive programming
- chores, such as windows, menus, user input, string formatting, directory
- listing etc. The programmer (or software engineer if you are from
- California!) can concentrate on the main purpose of the program. The full
- value of the Toolkit is not limited to saving the programmer time. The
- final program will have a consistent easy-to-use interface that will impart
- a professional quality to the program.
-
- The Toolkit is designed specifically to operate with Turbo Pascal v5.0 and
- v4.0 from Borland International. The full source code for all of the
- Toolkit is included so that the code may be reviewed and modified.
-
- The quickest way of gaining an appreciation of the capabilities of the
- Toolkit is to execute the program DemoTTT.exe. This program demonstrates
- most of the procedures and functions available. The demo itself was, of
- course, written with the Toolkit. If you haven't run it yet, run it now!
-
-
-
- How To Use The Toolkit
-
- The manual assumes that the reader has a basic knowledge of Borland's Turbo
- Pascal and understands the concepts of units. If you are new to Turbo
- Pascal, read the Chapter "Units and Related Mysteries" in the compiler's
- user's guide (page 65 v5.0, page 61 v4.0).
-
- It is not necessary to understand the internal workings of any of the
- Toolkit units in order to use them - all you need to know is how to call
- the procedures and functions.
-
-
- Example 1
-
- The technique is best illustrated with an example. In the unit FastTTT5
- there is a procedure for drawing boxes called BOX. A somewhat primitive
- program to draw a box on the screen would be as follows:
-
- PROGRAM TOOLKIT_DEMO;
- USES FASTTTT5;
-
- BEGIN
- BOX(1,1,80,25,15,4,1);
-
- END.
-
- All you need to know is the unit that contains the procedure Box and the
- syntax of the Box procedure. (If you must, take a peek at page 16-14 to see
- the detailed documentation for the BOX procedure!) That's all there is to
- it - no need to worry about drawing horizontal and vertical lines, or what
- the ASCII codes are for the box corners etc.
-
-
- Example 2
-
- The above example is useful to illustrate the most basic concept of the
- toolkit but how often will you write five line programs?!! More typically,
- you will want to use procedures and functions from a variety of the Toolkit
- units. All you need to do is "use" all the units that contain the relevant
- procedures. For example, let's say we want to expand the above program to
- draw a filled box and write the date in a neat (!) format at the top of the
- screen:
-
-
-
- PROGRAM IMPROVED_TOOLKIT_DEMO;
- USES FASTTTT5, MISCTTT5;
-
- BEGIN
- FBOX(1,1,80,25,15,4,1);
- WRITECENTER(2,14,4,DATE);
- END.
-
- The FBox and WriteCenter procedures are in the FastTTT5 unit and the Date
- function is in the MiscTTT5 unit.
-
-
-
- Required Software & HARDWARE
-
- The Toolkit is designed to work with v5.0 or v4.0 of Borland
- International's Turbo Pascal compiler for the IBM PC. To compile programs
- developed using the Toolkit, you will need Turbo Pascal (version 4.0 or
- greater), as well as MS-DOS or PC-DOS (version 2.0 or greater).
-
- Programs developed with the Toolkit will function on the same hardware as
- specified in the Turbo Pascal compiler documentation, i.e. IBM PC, XT, AT,
- PS/2 and true compatibles. Any of the standard display adapters are
- supported, including the monochrome, CGA, EGA and VGA. The Toolkit
- automatically supports a Microsoft (or true compatible) mouse. If the
- system does not have a mouse, no problem, the mouse features are ignored.
- In other words, if you develop a program using the Toolkit, it can be run
- on machines with or without a mouse.
-
-
-
- ROYALTIES
-
- Many Toolkit users develop commercial programs specifically to sell for
-
- profit. TechnoJock Software Inc. neither expects nor requires a royalty fee
- on such programs. The major restriction is that you may not develop a
- program that is itself a toolkit, i.e. a library of programmer's utilities.
-
- The Toolkit TPU's and source code may not be sold or distributed as part of
- another program.
-
- Refer to the License Agreement at the front of the manual for more
- information.
-
-
-
- SUPPORT
-
- TechnoJock Software Inc. strives to support its users. If you have a
- problem that you are unable to resolve:
-
- - send a diskette containing the problematic software, together with
- details of the problem and instructions on how to generate the problem
- to:
-
- TechnoJock Software Inc.
- PO Box 820927
- Houston
- TX 77282-0927
-
- - leave an electronic message on Compuserve by typing GO EMAIL at a
- CompuServe menu prompt. The userid for TechnoJock Software Inc. is
- 74017,227.
-
- - call TechnoJock Software at (713) 493-6354.
-
- Identify the following: the version of the Toolkit, the DOS version, the
- contents of the CONFIG.SYS file, the contents of the AUTOEXEC.BAT file, and
- the type of hardware that the software is executed on.
-
-
-
- ACKNOWLEDGEMENTS
-
- In this manual, references are made to several products:
- Turbo Pascal, Sidekick and Sprint are registered trademarks of Borland
- International.
- IBM is a registered trademark and PC, XT, AT, PS/2 and PC-DOS are trademarks of
- International Business Machines Corporation.
- MS-DOS and Microsoft Word are trademarks of Microsoft Corporation.
- Pagemaker is a registered trademark of Aldus Corporation.
- rporation.
- CompuServe is a registered trademark of CompuServe Information Service, Inc.
- Pizazz +Plus is a trademark of Application Techniques, Inc.
-
-
-
-
- This User Manual was prepared using Microsoft Word, Aldus Pagemaker and Pizazz
- +Plus.
-
-
-
-
-
-
- CHAPTER 2 - GETTING STARTED
- ===========================
-
- INTRODUCTION
-
- This chapter includes instructions on how to install the disks, together
- with a description of the Toolkit design concepts and how to get the most
- out of the User Manual.
-
- Make sure you read the diskette READ.ME file. It will contain any last
- minute information that was not included in this User Manual.
-
-
-
- WHAT'S ON THE DISKS
-
- The Toolkit is shipped in one of three formats: two 360k diskettes, a
- single 1.2 Mb diskette or a single 3.5 inch diskette. The manual assumes
- that the user is working with the two 360k diskettes option.
-
- Source Disk
-
- Diskette 1 is the SOURCE diskette and includes the following files:
-
- FastTTT5.pas the pascal source for the FastTTT5 unit
- FastTTT5.obj the assembler object file for the FastTTT5 unit
- WinTTT5.pas the pascal source for the WinTTT5 unit
- WinTTT5.obj the assembler object file for the WinTTT5 unit
- KeyTTT5.pas the pascal source for the KeyTTT5 unit
- MenuTTT5.pas the pascal source for the MenuTTT5 unit
- PullTTT5.pas the pascal source for the PullTTT5 unit
- NestTTT5.pas the pascal source for the NestTTT5 unit
- ListTTT5.pas the pascal source for the ListTTT5 unit
- DirTTT5.pas the pascal source for the DirTTT5 unit
- ReadTTT5.pas the pascal source for the ReadTTT5 unit
- IOTTT5.pas the pascal source for the IOTTT5 unit
- StrnTTT5.pas the pascal source for the StrnTTT5 unit
- MiscTTT5.pas the pascal source for the MiscTTT5 unit
- Register.doc an ASCII order form for the Toolkit
- Read.Me latest information about the Toolkit.
- TTT.Mak a make file for all the units in the Toolkit.
-
-
- Demo Disk
-
- Diskette 2 is the DEMO disk, although it does also contain the assembler
- source for the OBJ files on diskette 1 and the on-disk manual. The DEMO
- disk includes the following files:
-
- FastTTT5.asm assembler source for the FastTTT5.obj file
- WinTTT5.asm assembler source for the WinTTT5.obj file
- Demo5.ARC demonstration files for Turbo 5.0 Users
- Demo4.ARC demonstration files for Turbo 4.0 Users
-
- Manual.ARC an abridged version of this manual to help others evaluate
- the Toolkit.
- ArcX.COM a utility file to de-archive the ARC files
- Register.doc an ASCII order form for the Toolkit
- Upgrade.doc special information for users of earlier versions of the
- Toolkit
- BuildTTT.pas a program to build the TPU files
-
-
- The files with an extension of ARC are archived files which contain files
- in a compressed format.
-
-
-
- INSTALLATION
-
- The first thing to do is create a subdirectory called TTT (or whatever you
- choose) below the compiler directory. Assuming your compiler is in a
- directory called TURBO, the commands would be:
-
- C:
- MD\TURBO\TTT
- CD\TURBO\TTT
-
- Now place each of the disks into drive A and type the following command:
-
- COPY A:*.* C:\TURBO\TTT
-
- Put the master diskettes away in a safe place.
-
- There are two sets of demonstration files; one for Turbo 5 users, and one
- for Turbo 4 users. The sets are very similar and differ only in minor ways.
- The next task is to extract the source code from the relevant ARC file,
- i.e. DEMO5.ARC or DEMO4.ARC, by using the ARCX.COM program that is included
- on the disk, e.g.
-
- ARCX TURBO4
- or
- ARCX TURBO5
-
- The Manual.Arc file contains an abridged version of this User Manual and is
- included on the diskette so that non-registered users can evaluate the
- Toolkit. You will not need to keep the manual file on the hard disk since
- you already have this wonderful masterpiece! Therefore, all the arc files
- can be deleted from the fixed disk, e.g.
-
- DEL *.ARC
-
-
- To save space, the Toolkit does not include the compiled TPU files. The
- compiler will automatically compile any required units when you build your
- first program. However, all the units can be recompiled using one of the
- following methods:
-
- 1 If you are familiar with the MAKE utility, execute the TTT.MAK file:
-
-
- MAKE -fTTT.MAK
-
- 2 Compile the program BUILDTTT.PAS or use the BUILD compiler option.
- This program forces the compiler to build all the TPU's. Some of the
- units are available in two versions; a compact unit that doesn't
- contain all the features but has a reduced program size, and a full
- featured unit. The desired version is controlled through the use of
- compiler directives. (Refer to the section Minimizing Program Size for
- more information on conditional compiler directives.) Instructions are
- included at the top of the BuildTTT.pas file.
-
-
-
- USING THE MANUAL
-
- The User Manual is organized into two main sections.
-
- Chapters 1 to 15 discuss the features and options of each individual unit.
- It is recommended that you read the appropriate chapter before using a unit
- for the first time. Each chapter includes a description of each procedure,
- how it should be used in a program, the unit organization, and how to
- modify the characteristics of the units by assigning new values to global
- variables.
-
- Chapter 16 is the main reference section and contains a full alphabetic
- listing of all the procedures and functions in the Toolkit. It includes a
- description of each procedure, the declaration syntax, a cross reference to
- other related procedures and an example of the procedure in use.
-
-
-
- TOOLKIT CONCEPTS
-
- The Toolkit has been designed to be both flexible and easy to use.
-
- One of the major design critera was to minimize the complexity of the
- Toolkit. The number of parameters passed to each procedure has been kept to
- a minimum. We didn't want you to learn a whole new philosophy just to use
- the Toolkit in your programs!
-
- Part of the flexibility has been attained through the use of global
- variables which control the look and feel of many of the units. For
- example, the ReadTTT5 unit includes a global variable RTTT that controls
- the display colors, whether the user can escape, if the user is initially
- in input mode or overtype mode, etc. The Toolkit sets RTTT to some default
- values. If you prefer to use alternate settings, just change the relevant
- element of RTTT, e.g.
-
- VAR
- NAME : STRING;
- BEGIN
- WITH RTTT DO
- BEGIN
- INSERT := FALSE;
-
- WHITESPACE := ' ';
- RIGHTJUSTIFY := TRUE;
- END;
- READ_STRING(10,5,30,'ENTER YOUR NAME ',2,NAME);
- END;
-
- The Toolkit default settings can be automatically restored by executing the
- unit's Default_Settings procedure, e.g.
-
- READTTT5.DEFAULT_SETTINGS;
-
- The following units include global variables:
-
- DirTTT5 DTTT
- ListTTT5 LTTT
- NestTTT5 NTTT
- PullTTT5 PTTT
- ReadTTT5 RTTT
-
- These variables are discussed fully in the User Manual.
-
- Many of the procedures are designed to write text to the screen. The
- FastTTT5 unit includes a string type of StrScreen which is set to an 80
- character string. The Turbo Pascal compiler expects these procedures to be
- passed only strings of exactly the same type. Sometimes, when a different
- string type is used, the compiler will halt and issue the message "Error
- 26: Type Mismatch". You do not need to change all the string types in your
- program to type StrScreen. Just place the following compiler directive at
- the top of your program:
-
- {$V-}
-
- This directive turns off string type checking.
-
-
-
- USER HOOKS
-
- The Toolkit provides User Hooks to allow the programmer to hook into the
- heart of the Toolkit units and customize the program.
-
- A User Hook is basically a programmer defined procedure that is called by a
- Toolkit unit every time a particular event occurs. For example, a
- programmer's procedure can be called every time a key is pressed. This
- hooked procedure is passed the character pressed by the user. The hooked
- procedure can call other procedures and can even modify the key that was
- pressed before returning control back to the Toolkit.
-
- The hooks provide a mechanism to customize the Toolkit functionality
- without modifying the Toolkit source code.
-
- The following units include user hooks:
-
- KeyTTT5
- MenuTTT5
-
- PullTTT5
- NestTTT5
- ListTTT5
- IOTTT5
-
- Full details on the hooks are contained in the unit chapters.
-
-
-
- CONDITIONAL COMPILATION
-
- Some of the units can be used in one of two modes; full featured or fewer
- features with smaller program size. The three units that provide the two
- modes are KeyTTT5, DirTTT5 and IOTTT5.
-
- The programmer can control the mode through the use of compiler directives.
- Turbo Pascal's conditional compiler directives allow you to produce
- different code from the same source text, based on conditional symbols.The
- three conditional symbols are K_FULL, DIRFULL and IOFULL, respectively.
-
- By default, the Toolkit uses these units in their slim form. To recompile
- the units in their full form, use the /D switch on the command-line
- compiler or the menu command O/C/Conditional Defines in the integrated
- environment. Figure 2.1 (below) illustrates the integrated environment
- option.
-
- Once the appropriate conditional defines have been set, BUILD the program.
- This will force the TPUs to be recompiled. The compiler directives do not
- need to be set every time you compile your program, only when you want to
- change the units from their current state.
-
-
-
-
-
-
- CHAPTER 16 - REFERENCE LOOKUP
- =============================
-
- This chapter is an aplhabetical listing of all the procedures and functions
- in the Toolkit.
-
-
-
- ___________________________________________________________________________
-
- Activate_Table IOTTT5
-
-
- Purpose Redirects all IOTTT5 activity to the assigned table.
-
- Decln. Activate_Table(Table_No:byte);
-
- Remarks Table_No is the number of the table to activate. It must be in
- the range 1 to Max_Tables. The default active table is table 1.
-
-
- See Also Create_Tables, Dispose_Tables
-
- Example
-
- BEGIN
- CREATE_TABLES(3);
- ACTIVATE_TABLE(1);
- CREATE_FIELDS(20);
- ACTIVATE_TABLE(2);
- CREATE_FIELDS(5);
- ACTIVATE_TABLE(3);
- CREATE_FIELDS(10);
- END;
-
- Three tables are created and then 20, 5 and 10 fields are created for each
- table.
-
- ___________________________________________________________________________
-
- Activate_Virtual_Screen WinTTT5
-
-
- Purpose Redirects all subsequent screen writing activity to a virtual
- screen.
-
- Decln. Activate_Virtual_Screen(Page:byte);
-
- Remarks Page is the number of the virtual screen to activate. It must be
- in the range 1 to Max_Screens and must have been created with
- CreateScreen or SaveScreen.
-
- See Also CreateScreen, SaveScreen, Activate_Visible_Screen
-
- Example
-
- BEGIN
- CREATESCREEN(3,25);
- ACTIVATE_VIRTUAL_SCREEN(3);
- CLEARTEXT(1,1,80,25,WHITE,BLUE);
- WRITECENTER(1,YELLOW,BLUE,'HELP SYSTEM');
- ......
- SLIDERESTORESCREEN(3,DOWN);
- ACTIVATE_VISIBLE_SCREEN;
- END;
-
- Virtual screen number 3 is created and all screen writes are redirected to
- it with the Activate_Virtual_Screen procedure. The virtual screen is
- displayed to the user by sliding it down onto the display.
-
- ___________________________________________________________________________
-
- Activate_Visible_Screen WinTTT5
-
-
-
- Purpose Redirects all subsequent screen writing activity back to the
- visible screen.
-
- Decln. Activate_Visible_Screen;
-
- Remarks The visible screen is effectively screen 0. This command is the
- equivalent of Activate_Virtual_Screen(0);
-
- See Also Activate_Virtual_Screen
-
- Example
-
- BEGIN
- CREATESCREEN(3,25);
- ACTIVATE_VIRTUAL_SCREEN(3);
- CLEARTEXT(1,1,80,25,WHITE,BLUE);
- WRITECENTER(1,YELLOW,BLUE,'HELP SYSTEM');
- ......
- SLIDERESTORESCREEN(3,DOWN);
- ACTIVATE_VISIBLE_SCREEN;
- WRITE(1,25,WHITE,RED,'PRESS ANY KEY TO CONTINUE');
- END;
-
- ___________________________________________________________________________
-
- Add_Field IOTTT5
-
-
- Purpose Creates an input field for full screen editing.
-
- Decln. Add_Field(ID,U,D,L,R,X,Y)
-
- Remarks ID is the field ID number of the field being added. It must be
- within the range of fields that were created with the
- Create_Fields procedure
- U, D, L and R are the fields to jump to when the user presses the
- Up, Down, Left and Right movement keys.
- X Y are the coordinates of the first character of the field.
-
- See Also Create_Fields, String_Field, Byte_Field, etc.
-
- Example
-
- BEGIN
- CREATE_FIELDS(5);
- ADD_FIELD(1, 5,2,5,2, 5,10);
- ADD_FIELD(2, 1,3,1,3, 5,12);
- ADD_FIELD(3, 2,4,2,4, 5,14);
- ADD_FIELD(4, 3,5,3,5, 5,16);
- ADD_FIELD(5, 4,1,4,1, 5,18);
- END;
-
-
- ___________________________________________________________________________
-
- Add_Message IOTTT5
-
-
- Purpose Assigns a message to a specific input field.
-
- Decln. Add_Message(ID,X,Y:byte;Msg:string);
-
- Remarks ID is the field ID number. The field must have previously been
- added with the Add_Field procedure.
- X Y are the leftmost coordinates of the message. If X is set to
- zero, the Toolkit automatically centers the message on the
- screen. If Y is set to zero, the message is displayed on the line
- below the input field.
- Msg is the message text.
-
- Every time the user enters the input field, the message will be
- displayed. When the user leaves the field, the message will be
- removed and the original screen contents restored.
-
- See Also Add_Field
-
- Example
-
- BEGIN
- CREATE_FIELDS(20);
- ADD_FIELD(1, 20,2,20,2, 40,5);
- ADD_MESSAGE(1, 1,5, 'CHECK THEIR CREDIT RATING!');
- END;
-
- ___________________________________________________________________________
-
- Add_Topic NestTTT5
-
-
- Purpose Adds a new topic to a menu.
-
- Decln. Add_Topic(var
- M:Nest_Menu;N:MenuStr;A:Boolean;Key:char;code:integer;Sub:MenuPtr
- );
-
- Remarks M is the name of the menu variable to which the topic will be
- added.
- N is the topic text, i.e. the string that will be displayed in
- the menu.
- A indicates if the topic is selectable or non-selectable. Set to
- true for normal selectable topics.
- Key is the character code of a hotkey that can be used to execute
- the topic. Set to #0 to disable the hotkey.
- Code is an integer code that will be passed to the despatcher
- procedure to indicate that the user selected this topic. Set the
- code to zero if a sub-menu is going to be called.
- Sub is the address of a sub-menu that is to be called if the
-
- topic is selected. Set to NIL if the topic executes a despatcher
- procedure rather than displaying a sub-menu.
-
- Add topics in the order that they are to appear. When a topic is
- added, the Toolkit assigns a topic number. This topic number is
- used to modify or delete topics.
-
- See Also Initialize_Menu, Modify_Topic, Delete_A_Topic
-
- Example
-
- BEGIN
- ADD_TOPIC(PRINT,'RESET PRINTER',TRUE,#0,301,NIL);
- ADD_TOPIC(PRINT,'SET CONDENSED',TRUE,#0,302,NIL);
- ADD_TOPIC(PRINT,'REPORT MENU (ALT-R)',TRUE,#147,0,@REPORT);
- END;
-
- Three topics are added to the menu variable PRINT. When selected, the first
- two topics call the despatcher with codes of 301 and 302, respectively. The
- third topic calls the Report menu.
-
- ___________________________________________________________________________
-
- Allow_Beep IOTTT5
-
-
- Purpose Indicates if the system will beep when the user presses an
- invalid key.
-
- Decln. Allow_Beep(On:boolean);
-
- Remarks Pass true to activate beeping and false to disable beeping.
- Default is true. The setting applies to the active table.
-
- See Also Activate_Table
-
- Example
-
- BEGIN
- ALLOW_BEEP(FALSE);
- END;
-
- ___________________________________________________________________________
-
- Allow_Esc IOTTT5
-
-
- Purpose Indicates if the user can escape from the input session by
- pressing Esc.
-
- Decln. Allow_Esc(On:boolean);
-
- Remarks Pass true to allow the user to escape and false to disable the
- Esc key. Default is true. The setting applies to the active
- table.
-
-
- See Also Activate_Table
-
- Example
-
- BEGIN
- ALLOW_ESC(FALSE);
- END;
-
- ___________________________________________________________________________
-
- Alt_Pressed KeyTTT5
-
-
- Purpose Indicates if the Alt key is depressed (i.e. held down - not
- melancholy!).
-
- Decln. Alt_Pressed:boolean
-
- Returns Boolean
-
- See Also Ctrl_Pressed, Shift_pressed
-
- Example
-
- BEGIN
- ......
- IF ALT_PRESSED THEN
- WRITECENTER(25,YELLOW,RED,' LET GO OF THE ALT KEY! ');
- END;
-
- ___________________________________________________________________________
-
- Assign_CharHook IOTTT5
-
-
- Purpose Identifies a procedure that will be called every time the user
- presses a key during field input.
-
- Decln. Assign_CharHook(Proc:Char_Hook_Proc);
-
- Remarks Proc is the name of the procedure to Hook into the IO routines.
- The procedure must be declared far with 3 passed parameters; a
- variable type char, a variable type ID and a variable type byte.
- The procedure will be passed the character that was just pressed,
- the current field ID number and a refresh code.
-
- See Also Assign_InsHook, Assign_LeaveFieldHook, Assign_EnterFieldHook
-
- Example
-
- {$F+}
- PROCEDURE BOBS_HOOK(VAR C:CHAR;VAR ID:BYTE;VAR R:BYTE);
- BEGIN
- IF C = F2 THEN
-
- DISPLAY_USERID;
- END;
- {$F-}
-
- BEGIN
- ASSIGN_CHARHOOK(BOBS_HOOK);
- END;
-
- This procedure is only available for Turbo 5.0 programmers. Turbo 4.0
- programmers should replace the procedure with the statement:
-
- IO_CHARHOOK := @BOBS_HOOK;
-
- ___________________________________________________________________________
-
- Assign_Despatcher NestTTT5
-
-
- Purpose Identifies the procedure that will be called when a user selects
- a menu topic.
-
- Decln. Assign_Despatcher(D:Despatcher_proc);
-
- Remarks D is the name of the procedure that will be executed when a user
- selects a menu topic. The procedure must be declared far with two
- passed parameters; a variable integer indicating the selected
- topic and a variable byte indicating the refresh code. The
- selected topic code is the code that was passed with the
- Add_Topic procedure.
-
- See Also Add_Topic
-
- Example
-
- {$F+}
- PROCEDURE TASK_MASTER(VAR CODE:INTEGER;VAR R:BYTE);
- BEGIN
- CASE CODE OF
- ....
- 301 : BEGIN
- RESET_PRINTER;
- R := CLEARCURRENT;
- END;
- ....
- END; {CASE}
- END; {PROC}
- {$F-}
-
- BEGIN
- ASSIGN_DESPATCHER(TASK_MASTER);
- END;
-
- The despatcher procedure Task_Master checks to see if the user selected the
- topic with a code of 301. If so, the printer is reset, and control is
- passed back to the nested menu, but the menu is removed and the parent menu
- displayed.
-
-
- ___________________________________________________________________________
-
- Assign_EnterFieldHook IOTTT5
-
-
- Purpose Identifies a procedure that will be called every time the user
- enters a new field during field input.
-
- Decln. Assign_EnterFieldHook(Proc:Move_Field_proc);
-
- Remarks Proc is the name of the procedure to Hook into the IO routines.
- The procedure must be declared far with 2 passed parameters; a
- variable type byte and a variable type byte. The procedure will
- be passed the field ID number that the user is moving to and a
- refresh code.
-
- See Also Assign_InsHook, Assign_CharHook, Assign_LeaveFieldHook
-
- Example
-
- {$F+}
- PROCEDURE INTO_HOOK(VAR ID:BYTE;VAR R:BYTE);
- BEGIN
- IF ID = 21 THEN
- DISPLAY_COMPANY_INFO;
- END;
- {$F-}
-
- BEGIN
- ASSIGN_ENTERFIELDHOOK(INTO_HOOK);
- END;
-
- This procedure is only available for Turbo 5.0 programmers. Turbo 4.0
- programmers should replace the procedure with the statement:
-
- IO_ENTERHOOK := @INTO_HOOK;
-
- ___________________________________________________________________________
-
- Assign_Finish_Char IOTTT5
-
-
- Purpose Indicates the character that the user can press to terminate
- input.
-
- Decln. Assign_Finish_Char(Ch:char)
-
- Remarks Ch is the end input character. The default is the F10 function
- key. The appendix includes a list of the Toolkit character codes.
- Remember to advise the user of the key so that he/she can exit!
-
- See Also Assign_LeaveFieldHook
-
- Example
-
-
- BEGIN
- ASSIGN_FINISH_CHAR(#173);
- END;
-
- The input will be terminated when the user presses Alt-X.
-
- ___________________________________________________________________________
-
- Assign_Idle_Hook KeyTTT5
-
-
- Purpose Identifies a procedure that will be continually called while the
- program is waiting for a key.
-
- Decln. Assign_Idle_Hook(Proc:Key_Idle_Type);
-
- Remarks Proc is the assigned procedure which must be declared far and
- must have no passed parameters. Keep the procedure fast and
- efficient to avoid a sluggish keyboard response. If the procedure
- is a background procedure (such as printing), be sure to check
- for KeyPressed, and exit if the user has pressed a key.
-
- See Also Assign_Pressed_Hook
-
- Example
-
- {$F+}
- PROCEDURE KEY_STATUS;
- BEGIN
- IF CAPSON THEN
- WRITEAT(65,25,WHITE,BLUE,'CAPS')
- ELSE
- WRITEAT(65,25,WHITE,BLUE,' ');
- END;
- {$F-}
-
- BEGIN
- ASSIGN_IDLE_HOOK(KEY_STATUS);
- END;
-
- This procedure is only available for Turbo 5.0 programmers. Turbo 4.0
- programmers should replace the procedure with the statement:
-
- KTTT.IDLE_HOOK := @KEY_STATUS;
-
- ___________________________________________________________________________
-
- Assign_InsHook IOTTT5
-
-
- Purpose Identifies a procedure which will be called every time the user
- presses the Ins key during field input.
-
- Decln. Assign_InsHook(Proc:Insert_proc);
-
-
- Remarks Proc is the name of the procedure to Hook into the IO routines.
- The procedure must be declared far with 1 passed parameter; a
- boolean. The procedure is passed the new state of the insert key.
- The default procedure sets the cursor to a full block in Overtype
- mode and an underscore cursor in Insert Mode.
-
- See Also Assign_CharHook, Assign_EnterFieldHook, Assign_LeaveFieldHook
-
- Example
-
- {$F+}
- PROCEDURE INS_HOOK(INSERTON:BOOLEAN);
- BEGIN
- IF INSERTON THEN
- WRITEAT(71,25,WHITE,RED,'INSERT ')
- ELSE
- WRITEAT(71,25,WHITE,RED,'OVERTYPE');
- END;
- {$F-}
-
- BEGIN
- ASSIGN_INSHOOK(INS_HOOK);
- END;
-
- This procedure is only available for Turbo 5.0 programmers. Turbo 4.0
- programmers should replace the procedure with the statement:
-
- IO_INSERTHOOK:= @INS_HOOK;
-
- ___________________________________________________________________________
-
- Assign_LeaveFieldHook IOTTT5
-
-
- Purpose Identifies a procedure that will be called every time the user
- leaves a field during field input.
-
- Decln. Assign_LeaveFieldHook(Proc:Move_Field_proc);
-
- Remarks Proc is the name of the procedure to Hook into the IO routines.
- The procedure must be declared far with 2 passed parameters; a
- variable type byte and a variable type byte. The procedure will
- be passed the field ID number that the user is leaving and a
- refresh code.
-
- See Also Assign_InsHook, Assign_CharHook, Assign_EnterFieldHook
-
- Example
-
- {$F+}
- PROCEDURE LEAVE_HOOK(VAR ID:BYTE;VAR R:BYTE);
- BEGIN
- IF ID = 21 THEN
- R := END_INPUT;
-
- END;
- {$F-}
-
- BEGIN
- ASSIGN_LEAVEFIELDHOOK(LEAVE_HOOK);
- END;
-
- This procedure is only available for Turbo 5.0 programmers. Turbo 4.0
- programmers should replace the procedure with the statement:
-
- IO_LEAVEHOOK := @LEAVE_HOOK;
-
- ___________________________________________________________________________
-
- Assign_Pressed_Hook KeyTTT5
-
-
- Purpose Assigns a procedure that will be called every time a key is
- pressed.
-
- Decln. Assign_Pressed_Hook(Proc: Key_Pressed_Type);
-
- Remarks Proc is the name of the procedure to Hook into the GetKey
- routine. The procedure must be declared far with 1 passed
- parameter; a variable character. The hooked procedure is passed
- the character that the user just pressed. The character can be
- modified to any value before being returned to GetKey.
-
- See Also GetKey, Assign_Idle_Hook
-
- Example
-
- {$F+}
- PROCEDURE GLOBAL_TASKS(VAR C : CHAR);
- BEGIN
- CASE C OF
- F1 : HELP_ROUTINES;
- ALTX: EXIT_ROUTINES;
- END; {CASE}
- END;
- {$F}
-
- BEGIN
- ....
- ASSIGN_PRESSED_HOOK(GLOBAL_TASKS);
- ....
- END;
-
- This procedure is only available for Turbo 5.0 programmers. Turbo 4.0
- programmers should replace the procedure with the statement:
-
- KTTT.PRESSEDHOOK := @GLOBAL_TASKS;
-
-
- ___________________________________________________________________________
-
- Attrib FastTTT5
-
-
- Purpose Changes the display attributes of an area of the screen.
-
- Decln. Attrib(X1,Y1,X2,Y2,F,B:byte);
-
- Remarks X1, Y1 are the coordinates of the top left corner of the area to
- be changed.
- X2, Y2 are the lower right corner coordinates.
- F, B are the foreground and background colors.
-
- See Also ClearText
-
- Example
-
- BEGIN
- ATTRIB(20,5,60,15,WHITE,LIGHTGRAY,BLACK);
- END;
-
- ___________________________________________________________________________
-
- Attr FastTTT5
-
-
- Purpose Combines a foreground and a background color into an attribute
- byte.
-
- Decln. Attr(F,B:byte):byte;
-
- Returns Byte
-
- Example
-
- BEGIN
- FASTWRITE(1,2,ATTR(YELLOW,RED),'HELLO');
- END;
-
- This command is the equivalent of:
-
- WRITEAT(1,1,YELLOW,RED,'HELLO');
-
- ___________________________________________________________________________
-
- Beep MiscTTT5
-
-
- Purpose Emits a beep from the PC speaker.
-
- Decln. Beep;
-
- Example
-
-
- BEGIN
- IF INVALID_CHAR(CH) THEN
- BEEP;
- END;
-
- ___________________________________________________________________________
-
- Box FastTTT5
-
-
- Purpose Draws a box on the screen.
-
- Decln. Box(X1,Y1,X2,Y2,F,B,BoxType:byte)
-
- Remarks X1, Y1 are the coordinates of the top left corner of the area to
- be changed.
- X2, Y2 are the lower right corner coordinates.
- F, B are the foreground and background colors.
- BoxType is a code to indicate the box type: 0 no box, 1 single
- line box, 2 double line box, 3 single top/bottom and double
- sides, 4 double top/bottom and single sides. If a box type in the
- range 5..255 is used, the box is drawn using the ASCII character
- represented by that number.
-
- The area of the display inside the Box border is not cleared.
-
- See Also FBox, GrowFBox
-
- Example
-
- BEGIN
- CLRSCR;
- BOX(1,1,80,20,LIGHTCYAN,RED,2);
- END;
-
- ___________________________________________________________________________
-
- Byte_Field IOTTT5
-
-
- Purpose Assigns a byte variable to an input field.
-
- Decln. Byte_Field(ID:byte;var BVar:byte;Fmt:Lstring;Min,Max:byte);
-
- Remarks ID is the field ID number.
- Bvar is the name of the byte variable that will be updated with
- the user's input.
- Fmt is the format of the input field. Pass a null string '' for
- the default.
- Min, Max are the minimum and maximum values for range check. Set
- to 0 to accept any byte value.
-
- The field must be declared with Add_Field prior to calling this
- procedure.
-
-
- See Also Add_Field, Word_Field, Integer_Field, LongInt_Field, Real_Field,
- Date_Field, String_Field
-
- Example
-
- BEGIN
- ACTIVATE_TABLE(3);
- BYTE_FIELD(1, AGE, '', 0,120);
- BYTE_FIELD(2, DAY, '', 1,31);
- END;
-
- ___________________________________________________________________________
-
- CapsOn KeyTTT5
-
-
- Purpose Indicates if the Caps Lock key is on.
-
- Decln. CapsOn:boolean;
-
- Returns Boolean
-
- Remarks Returns true if the CapsOn key is "illuminated".
-
- See Also Set_Caps, NumOn, ScrollOn
-
- Example
-
- BEGIN
- IF CAPSON THEN
- WRITEAT(70,1,WHITE,BLACK,'CAPS')
- ELSE
- WRITEAT(70,1,WHITE,BLACK,' ')
- END;
-
- ___________________________________________________________________________
-
- ClearLine FastTTT5
-
-
- Purpose Erases all the text on a line and sets the display attribute.
-
- Decln. ClearLine(Y,F,B);
-
- Remarks Y is the line number.
- F, B are the foreground and background colors to set the blank
- line with.
-
- See Also ClearText
-
- Example
-
- BEGIN
- CLEARLINE(25,YELLOW,RED);
-
- PLAINWRITE(1,25,'FATAL ERROR - FILE SERVER EXPLODED');
- END;
-
- ___________________________________________________________________________
-
- ClearText FastTTT5
-
-
- Purpose Erases all the text on a rectangular area of the screen and sets
- the display attribute.
-
- Decln. ClearText(X1,Y1,X2,Y2,F,B:byte);
-
- Remarks X1, Y1 are the coordinates of the top left corner of the area to
- be erased.
- X2, Y2 are the lower right corner coordinates.
- F, B are the foreground and background colors.
-
- See Also ClearLine, Attrib
-
- Example
-
- BEGIN
- CLEARTEXT(1,1,80,13,WHITE,BLACK);
- END;
-
- ___________________________________________________________________________
-
- ClickWrite FastTTT5
-
-
- Purpose Writes text to the screen with a fancy ticker-tape effect.
- Strictly trivial!
-
- Decln. ClickWrite(X,Y,F,B:byte;St:strscreen);
-
- Remarks X, Y are the coordinates of the first character of the string.
- F, B are the foreground and background display colors.
- St is the text to be displayed.
-
- See Also WriteAT
-
- Example
-
- BEGIN
- BOX(36,1,44,3,WHITE,BLUE,1);
- CLICKWRITE(35,2,LIGHTCYAN,BLUE,'MAIN MENU')
- END;
-
- ___________________________________________________________________________
-
- Clock MiscTTT5
-
-
- Purpose Displays the current time
-
-
- Decln. Clock;
-
- Remarks This procedure is designed to be used with the Assign_Idle_Hook
- to display a clock on the screen while the program is waiting for
- keyboard input.
-
- The MiscTTT5 unit includes 4 global byte variables that control
- the clock display:
-
- ClockX, ClockY are the clock display coordinates.
-
- ClockF, ClockB are the foreground and background display colors.
-
- See Also Assign_Idle_Hook
-
- Example
-
- BEGIN
- CLOCKX := 68;
- CLOCKY := 1;
- CLOCKF := LIGHTCYAN;
- CLOCKB := BLACK;
- ASSIGN_IDLE_HOOK(CLOCK);
- END;
-
- ___________________________________________________________________________
-
- ColorScreen FastTTT5
-
-
- Purpose Indicates whether the program is running on a color display
- system.
-
- Decln. ColorScreen:boolean;
-
- Returns Boolean
-
- Remarks The Toolkit automatically determines if the program is running on
- a color or a monochrome system.
-
- See Also EGAVGASystem
-
- Example
-
- BEGIN
- IF COLORSCREEN THEN
- WRITEAT(1,1,YELLOW,RED,'ERROR - PRINTER MELTED')
- ELSE
- WRITEAT(1,1,WHITE,BLACK,'ERROR - PRINTER MELTED')
- END;
-
-
- ___________________________________________________________________________
-
- ColWrite FastTTT5
-
-
- Purpose Displays a string on the screen using preset colors.
-
- Decln. ColWrite(X,Y:byte;St:strscreen);
-
- Remarks X, Y are the coordinates of the first character.
- St is the text to be displayed.
-
- The FastTTT5 unit includes two global variables FCol and BCol
- that Colwrite uses for the display colors.
-
- See Also WriteAT, FastWrite, PlainWrite, FWrite, FWriteLn
-
- Example
-
- BEGIN
- FCOL := YELLOW;
- BCOL := BLUE;
- COLWRITE(1,1,'TECHNOJOCK');
- COLWRITE(1,2,'SOFTWARE');
- COLWRITE(1,3,'INC');
- END;
-
- ___________________________________________________________________________
-
- Confine_Mouse_Horiz KeyTTT5
-
-
- Purpose Restricts the screen position of the mouse cursor horizontally.
-
- Decln. Confine_Mouse_Horiz(X1,X2:byte);
-
- Remarks X1, X2 are the leftmost and rightmost X coordinates.
-
- If the mouse is outside the confined coordinates when the
- procedure is called, the mouse is repositioned inside the nearest
- boundary as soon as any mouse activity occurs.
-
- See Also Confine_Mouse_Vert
-
- Example
-
- BEGIN
- HIDE_MOUSE_CURSOR;
- CONFINE_MOUSE_HORIZ(20,60);
- SHOW_MOUSE_CURSOR;
- END;
-
-
- ___________________________________________________________________________
-
- Confine_Mouse_Vert KeyTTT5
-
-
- Purpose Restricts the screen position of the mouse cursor vertically.
-
- Decln. Confine_Mouse_Vert(Y1,Y2:byte);
-
- Remarks Y1, Y2 are the leftmost and rightmost Y coordinates.
-
- If the mouse is outside the confined coordinates when the
- procedure is called, the mouse is repositioned inside the nearest
- boundary as soon as any mouse activity occurs.
-
- See Also Confine_Mouse_Horiz
-
- Example
-
- BEGIN
- HIDE_MOUSE_CURSOR;
- CONFINE_MOUSE_HORIZ(20,60);
- CONFINE_MOUSE_VERT(5,15);
- SHOW_MOUSE_CURSOR;
- END;
-
- ___________________________________________________________________________
-
- CopyFile MiscTTT5
-
-
- Purpose Copies a DOS file.
-
- Decln. CopyFile(Source, Target:string):byte
-
- Returns Byte
-
- Remarks Source and Target are the filenames. They may optionally include
- the drive and/or path. If the Target file already exists, it is
- overwritten.
-
- The return codes are
-
- 0 Copy successful
- 1 Source and target are the same
- 2 Source file not found
- 3 Unable to create Target file
- 4 Data copy failed
-
- See Also Exist
-
- Example
-
- BEGIN
-
- IF COPYFILE('C:\AUTOEXEC.BAT','C:\AUTOEXEC.BAK') = 0 THEN
- WRITECENTER(1,WHITE,BLACK,'FILE SAVED')
- ELSE
- WRITECENTER(1,YELLOW,RED,'COPY FAILED');
- END;
-
- ___________________________________________________________________________
-
- CopyScreenBlock WinTTT5
-
-
- Purpose Copies one part of the screen to another part of the display.
-
- Decln. CopyScreenBlock(X1,Y1,X2,Y2,X,Y:byte);
-
- Remarks X1, Y1 are the coordinates of the top left corner of the source
- area.
- X2, Y2 are the coordinates of the bottom right corner of the
- source area.
- X, Y are the coordinates of the top left corner of the target
- area.
-
- See Also MoveScreenBlock
-
- Example
-
- BEGIN
- COPYSCREENBLOCK(1,1,80,3,1,22)
- END;
-
- ___________________________________________________________________________
-
- CreateScreen WinTTT5
-
-
- Purpose Creates an empty virtual screen.
-
- Decln. CreateScreen(Page:byte;Lines:byte);
-
- Remarks Page is the screen number of the virtual screen.
- Lines is the number of lines (1..255) for the virtual screen. The
- Page number must be in the range 1 to Max_Screens.
-
- The virtual screen is created with a default display attribute of
- yellow on black. If the virtual screen already exists, the screen
- is cleared.
-
- See Also SaveScreen, RestoreScreen, DisposeScreen, Activate_Virtual_Screen
-
- Example
-
- BEGIN
- CREATESCREEN(3,25);
- ACTIVATE_VIRTUAL_SCREEN(3);
- ....
- END;
-
-
- ___________________________________________________________________________
-
- Create_Fields IOTTT5
-
-
- Purpose Allocates the total number of input fields.
-
- Decln. Create_Fields(Count:byte);
-
- Remarks Count is the number of fields to create for the active table. The
- total number of fields must be in the range 2 to MaxInputFields.
- This procedure must be called before Add_Field.
-
- See Also Create_Tables, Add_Field, Dispose_Fields
-
- Example
-
- BEGIN
- CREATE_FIELDS(5);
- ADD_FIELD(1, 5,2,5,2, 5,10);
- ADD_FIELD(2, 1,3,1,3, 5,12);
- ADD_FIELD(3, 2,4,2,4, 5,14);
- ADD_FIELD(4, 3,5,3,5, 5,16);
- ADD_FIELD(5, 4,1,4,1, 5,18);
- END;
-
- ___________________________________________________________________________
-
- Create_Tables IOTT5
-
-
- Purpose Allocates multiple tables for multi-screen input forms.
-
- Decln. Create_Tables(Count:byte);
-
- Remarks Count is the number of tables to create. If only one table is
- going to be used throughout the program, the procedure need not
- be called, i.e. the Toolkit initializes the unit with
- Create_Tables(1);
-
- See Also Create_Fields, Dispose_Tables
-
- Example
-
- BEGIN
- CREATE_TABLES(3);
- ACTIVATE_TABLE(1);
- CREATE_FIELDS(20);
- ACTIVATE_TABLE(2);
- CREATE_FIELDS(5);
- ACTIVATE_TABLE(3);
- CREATE_FIELDS(10);
- END;
-
-
- ___________________________________________________________________________
-
- Ctrl_Pressed KeyTTT5
-
-
- Purpose Indicates whether Ctrl key is depressed.
-
- Decln. Ctrl_Pressed:boolean
-
- Returns Boolean
-
- See Also Alt_Pressed, Shift_pressed
-
- Example
-
- BEGIN
- ......
- IF CTRL_PRESSED THEN
- WRITECENTER(25,YELLOW,RED,' LET GO OF THE CTRL KEY! ');
- END;
-
- ___________________________________________________________________________
-
- Date MiscTTT5
-
-
- Purpose Returns the system date nicely formatted.
-
- Decln. Date:string;
-
- Returns String
-
- Remarks The format of the returned string is the day followed by the
- month, day of month and year, e.g.
-
- Monday December 25, 1989
-
- See Also Time
-
- Example
-
- BEGIN
- CLRSCR;
- WRITECENTER(1,YELLOW,BLACK,DATE);
- END;
-
- ___________________________________________________________________________
-
- Date_Field IOTTT5
-
-
- Purpose Assigns a dates variable to an input field.
-
- Decln. Date_Field(ID:byte;var
- DVar:dates;DateFmt:byte;DispFmt:string;Min,Max:dates);
-
-
- Remarks ID is the field ID number.
- Dvar is the name of the dates variable that will be updated with
- the user's input.
- DateFmt is the date format of the input field. The valid date
- formats are declared as constants in the IOTTT5 unit:
- DDMMYY
- MMDDYY
- MMYY
- MMYYYY
- DDMMYYYY
- MMDDYYYY
- DispFmt is the display format for the date. Enter a null string
- if the default is satisfactory, i.e. ##/##/##, ##/####,
- ##/##/####.
- Min, Max are the earliest and latest acceptable dates for range
- checking. Set to 0 to accept any byte value.
-
- The field must be declared with Add_Field prior to calling this
- procedure.
-
- See Also Add_Field, Word_Field, Integer_Field, LongInt_Field, Real_Field,
- Byte_Field, String_Field
-
- Example
-
- BEGIN
- DATE_FIELD(8, BIRTHMONTH,MMYYYY,'',0,0);
- DATE_FIELD(9, PARTYDATE,DDMMYY,'(## - ## - ##)',0,0);
- END;
-
- ___________________________________________________________________________
-
- Date_to_Julian MiscTTT5
-
-
- Purpose Converts a date string to a Julian dates form.
-
- Decln. Date_to_Julian(StrDate:string;Fmt:byte):dates;
-
- Returns Dates
-
- Remarks StrDate is the date in string format.
- Fmt is the date format code.
-
- See Also Julian_to_Date, Today_In_Julian, Valid_Date
-
- Example
-
- BEGIN
- JULDATE := DATE_TO_JULIAN('2/20/56',MMDDYY);
- END;
-
-
- ___________________________________________________________________________
-
- Date_Within_Range MiscTTT5
-
-
- Purpose Returns true if one date falls between two other dates.
-
- Decln. Date_Within_Range(Min,Max,Test:dates):Boolean;
-
- Returns Boolean
-
- Remarks Min, Max are the beginning and ending dates in Julian form.
- Test is the date being evaluated.
-
- See Also Valid_Date
-
- Example
-
- VAR
- THESTART,
- THEEND,
- TESTDATE: DATES
- BEGIN
- THESTART := DATE_TO_JULIAN('07/01/89',MMDDYY);
- THEEND := DATE_TO_JULIAN('10/01/89',MMDDYY);
- TESTDATE := TODAY_IN_JULIAN;
- IF DATE_WITHIN_RANGE(THESTART,THEEND,TESTDATE) THEN
- FWRITELN('IT''S YOUR TURN TO CLEAN THE TOILET!');
- END;
-
- ___________________________________________________________________________
-
- Define_Colors IOTTT5
-
-
- Purpose Modifies the default display colors for the input fields and
- messages.
-
- Decln. Define_Colors(HiF,HiB,LoF,LoB,MsgF,MsgB:byte);
-
- Remarks HiF, HiB are the foreground and background colors of the field
- being edited.
- LoF, LoB are the foreground and background colors of the other
- fields.
- MsgF, MsgB are the foreground and background colors of the
- optional field messages.
-
- The Toolkit will automatically default to one of two color sets,
- depending on whether the system is monochrome or color.
-
- Example
-
- BEGIN
- IF COLORSCREEN THEN
- DEFINE_COLORS(YELLOW,RED,BLACK,LIGHTGRAY,CYAN,BLUE)
- ELSE
- DEFINE_COLORS(WHITE,BLACK,LIGHTGRAY,BLACK,WHITE,BLACK);
- END;
-
-
- ___________________________________________________________________________
-
- DelayKey KeyTTT5
-
-
- Purpose Pauses while the user presses a key or a specified time period
- elapses.
-
- Decln. DelayKey(Time:integer);
-
- Remarks Time is the maximum delay period in milliseconds, e.g. 1000 for a
- second.
-
- This procedure is very useful for temporarily displaying
- messages, copyright screens, etc. As soon as the user presses a
- key (or mouse activity occurs), the procedure ends.
-
- See Also GetKey
-
- Example
-
- BEGIN
- DISPLAY_HELP;
- DELAYKEY(10000);
- CLRSCR;
- END;
-
- ___________________________________________________________________________
-
- Delete_All_Topics NestTTT5
-
-
- Purpose Removes menu topics and disposes of the associated memory.
-
- Decln. Delete_All_Topics(var Menu:Nest_menu);
-
- Remarks Menu is the name of the menu variable storing the topics.
-
- This procedure should be called if the menu will no longer be
- used during the program execution.
-
- See Also Delete_A_Topic
-
- Example
-
- BEGIN
- DELETE_ALL_TOPICS(BOBS_MENU);
- END;
-
-
- ___________________________________________________________________________
-
- Delete_A_Topic NestTTT5
-
-
- Purpose Removes a menu topic and disposes of the associated memory.
-
- Decln. Delete_a_Topic(var Menu:Nest_menu; Topic:byte);
-
- Remarks Menu is the name of the menu variable storing the topic.
- Topic is the number of the topic which is being removed.
-
- See Also Delete_All_Topics
-
- Example
-
- BEGIN
- DELETE_A_TOPICS(BOBS_MENU,12);
- END;
-
- ___________________________________________________________________________
-
- DisplayMenu MenuTTT5
-
-
- Purpose Displays a superb looking menu!
-
- Decln. DisplayMenu(MenuDef:Menu_Record;W:boolean;var Choice,
- ECode:integer);
-
- Remarks MenuDef is the name of the menu record variable.
- W indicates if the menu should be removed and the original screen
- contents restored upon menu completion.
- Choice is returned with the user's menu selection.
- ECode is set to 0 for successful menu selection and 1 if the user
- escaped.
-
- See Also Menu_Set
-
- Example
-
- VAR
- MAIN_MENU : MENU_RECORD;
- CHOICE, ERROR : BYTE;
- BEGIN
- MENU_SET(MAIN_MENU);
- WITH MAIN_MENU DO
- BEGIN
- HEADING1 := 'MAIN MENU';
- TOPIC[1] := ' LOAD ';
- TOPIC[2] := ' SAVE ';
- TOPIC[3] := ' PRINT ';
- TOPIC[4] := ' QUIT ';
- TOTALPICKS := 4;
- END;
-
- CHOICE := 1;
- REPEAT
- DISPLAYMENU(MAIN_MENU,FALSE,CHOICE,ERROR);
- CASE CHOICE OF
- 1 : LOAD_STUFF;
- 2 : SAVE_STUFF;
- 3 : PRINT_STUFF;
- 4 : EXIT_PROC;
- END;
- UNTIL TRUE=FALSE;
- END;
-
- ___________________________________________________________________________
-
- Display_All_Fields IOTTT5
-
-
- Purpose Displays the input fields.
-
- Decln. Display_All_Fields;
-
- Remarks Normally the input fields are not displayed on the screen until
- the Process_Input procedure is called. This procedure will
- display the fields without putting the user into input mode.
-
- See Also Process_Input;
-
- Example
-
- BEGIN
- DISPLAY_ALL_FIELDS;
- END;
-
- ___________________________________________________________________________
-
- Display_Directory DirTTT5
-
-
- Purpose Displays a Sidekick Plus style directory and allows the user to
- select a file or change directories.
-
- Decln. Display_Directory(PathMask:StrScreen;var Ecode : integer):
- StrScreen;
-
- Returns StrScreen
-
- Remarks PathMask is a string containing a DOS compatible file mask. The
- string may include drive/path.
- Ecode is updated with the following possible values:
-
- 0 Successful completion
- 1 User escaped
- 2 Not enough memory
- 99 Unexpected error
-
-
- Example
-
- VAR
- ECODE :INTEGER;
- FNAME : STRING;
- BEGIN
- FNAME := DISPLAY_DIRECTORY('C:\TTT5\*.PAS',ECODE);
- END;
-
- ___________________________________________________________________________
-
- DisposeScreen WinTTT5
-
-
- Purpose Disposes of memory that was used to store a screen image.
-
- Decln. DisposeScreen(Page:byte);
-
- Remarks Page is the number of the screen to be disposed.
-
- If a saved/virtual screen has been restored and is no longer
- required, call this procedure to dispose of the saved image and
- free the associated memory.
-
- See Also CreateScreen, SaveScreen, RestoreScreen
-
- Example
-
- BEGIN
- SAVESCREEN(1);
- ....
- {SOME STATEMENTS THAT MODIFY THE CODE}
- ....
- RESTORESCREEN(1);
- DISPOSESCREEN(1);
- END;
-
- ___________________________________________________________________________
-
- Dispose_Fields IOTTT5
-
-
- Purpose Disposes of the memory used by all the input fields in the active
- table.
-
- Decln. Dispose_Fields;
-
- Remarks This procedure removes all the field information for the active
- table. The variables assigned to the fields are not affected.
- This procedure should only be called after the last input session
- has been terminated.
-
- See Also Create_Fields, Dispose_Tables
-
- Example
-
-
- BEGIN
- ....
- PROCESS_INPUT(1);
- DISPOSE_FIELDS;
- END;
-
- ___________________________________________________________________________
-
- Dispose_Tables IOTTT5
-
-
- Purpose Disposes of the memory used by all the input tables.
-
- Decln. Dispose_Tables;
-
- Remarks All the tables are initialized, and the memory they used is
- disposed of. Only call this procedure when all IO activity for
- the current session has ceased.
-
- See Also Create_Tables, Dispose_Fields
-
- Example
-
- BEGIN
- ACTIVATE_TABLE(1);
- DISPOSE_FIELDS;
- ACTIVATE_TABLE(2);
- DISPOSE_FIELDS;
- ACTIVATE_TABLE(3);
- DISPOSE_FIELDS;
- DISPOSE_TABLES;
-
- ___________________________________________________________________________
-
- EGAVGASystem FastTTT5
-
-
- Purpose Indicates if the system is equipped with an EGA or VGA display.
-
- Decln. EGAVGASystem:boolean
-
- Returns Boolean
-
- Remarks Returns true if the system is equipped with an EGA or VGA card
- and monitor.
-
- See Also ColorScreen
-
- Example
-
- BEGIN
- IF EGAVGASYSTEM THEN
- SETCONDENSEDLINES
- ELSE
- FWRITELN('CANNOT DISPLAY MORE LINES - THE SYSTEM IS TOO CHEAP!');
- END;
-
-
- ___________________________________________________________________________
-
- Exist MiscTTT5
-
-
- Purpose Indicates whether a file exists.
-
- Decln. Exist(Filename:string):boolean;
-
- Returns Boolean
-
- Remarks FileName is the name of the file being checked. If may contain
- wild card characters, i.e. the function will return true if any
- file is found matching the wild card template. The function will
- find any file type including readonly, directory, hidden, system,
- etc.
-
- Example
-
- BEGIN
- IF NOT EXIST('C:\AUTOEXEC.BAT') THEN
- BEEP;
- END;
-
- ___________________________________________________________________________
-
- ExtractWords StrnTTT5
-
-
- Purpose Returns a number of specified words from a string.
-
- Decln. ExtractWords(Start,Count:byte;Str:string):string;
-
- Returns String
-
- Remarks Start is the number of the first word to extract.
- Count is the number of words to extract.
- Str is the source string.
-
- See Also PosWord, WordCnt
-
- Example
-
- VAR LASTBIT : STRING;
- BEGIN
- LASTBIT := EXTRACTWORDS(4,3,'WHO THE HELL SAYS CENSORSHIP IS GOOD!');
- END;
-
- ___________________________________________________________________________
-
- FastWrite FastTTT5
-
-
- Purpose Writes a string to the screen very quickly.
-
-
- Decln. Fastwrite(X,Y,A:byte;St:StrScreen);
-
- Remarks X, Y are the coordinates of the first character.
- A is the display attribute.
- St is the text to display.
-
- WriteAT should be used in preference to Fastwrite because it is
- passed the foreground and background color attributes separately,
- rather than the combined attribute.
-
- See Also WriteAT, ColWrite, PlainWrite, FWrite, FwriteLN
-
- Example
-
- BEGIN
- FASTWRITE(1,1,14,'TOP LEFT OF SCREEN');
- FASTWRITE(69,25,ATTR(15,4),'BOTTOM RIGHT');
- END;
-
- ___________________________________________________________________________
-
- FBox FastTTT5
-
-
- Purpose Draws a filled box on the screen.
-
- Decln. FBox(X1,Y1,X2,Y2,F,B,BoxType:byte)
-
- Remarks X1, Y1 are the coordinates of the top left corner of the area to
- be changed.
- X2, Y2 are the lower right corner coordinates.
- F, B are the foreground and background colors.
- BoxType is a code to indicate the box type: 0 no box, 1 single
- line box, 2 double line box, 3 single top/bottom and double
- sides, 4 double top/bottom and single sides. If a box type in the
- range 5..255 is used, the box is drawn using the ASCII character
- represented by that number.
-
- The area of the display inside the Box border is cleared.
-
- See Also Box, GrowFBox
-
- Example
-
- BEGIN
- CLRSCR;
- FBOX(1,1,80,20,LIGHTCYAN,RED,2);
- END;
-
-
- ___________________________________________________________________________
-
- Field_Rules IOTTT5
-
-
- Purpose Defines the input characteristics of a field.
-
- Decln. Field_Rules(ID:byte;Rules:word;AChar,DChar:IOCharSet);
-
- Remarks ID is the field ID number.
- Rules is a word that indicates the display characteristics of the
- field. There are 5 different field Rules:
- ALLOWNULL
- SUPPRESSZERO
- RIGHTJUSTIFY
- ERASEDEFAULT
- JUMPIFFULL
- The desired attributes are summed to give the combined field
- Rules.
- AChar is a set of allowable characters that the user will be able
- to input. Set it to [#0] for the default characters.
- DChar is a set of characters that the user will not be able to
- input. Set it to No_Char (defined as [#0]) for the default
- characters.
-
- See Also Set_Default_Rules
-
- Example
-
- BEGIN
- FIELD_RULES(2,ALLOWNULL+SUPPRESSZERO,NO_CHAR,['*','?']);
- FIELD_RULES(3,RIGHTJUSTIFY,NO_CHAR,NO_CHAR);
- END;
-
- ___________________________________________________________________________
-
- File_Directory MiscTTT5
-
-
- Purpose Extracts the path section from a fully qualified filename.
-
- Decln. File_Directory(FullName:string):string;
-
- Returns String
-
- Remarks This function is only available to the Turbo 5.0 programmer.
-
- FullName is the source filename.
-
- If the path is not the root directory, the last backslash '\' is
- removed.
-
- See Also File_Drive, File_Ext, File_name
-
- Example
-
-
- VAR
- F : STRING;
- BEGIN
- F := FILE_DIRECTORY('C:\TURBO5\TTT5\MISCTTT5.PAS');
- END;
-
- F is assigned the value "\TURBO\TTT5".
-
- ___________________________________________________________________________
-
- File_Drive MiscTTT5
-
-
- Purpose Extracts the drive from a fully qualified filename.
-
- Decln. File_Drive(FullName:string):string;
-
- Returns String
-
- Remarks This function is only available to the Turbo 5.0 programmer.
-
- FullName is the source filename.
-
- If the filename does not include a drive, a null string '' is
- returned. The colon ':' is removed (sorry Ronnie).
-
- See Also File_Directory, File_Ext, File_Name
-
- Example
-
- VAR
- F : STRING;
- BEGIN
- F := FILE_DRIVE('C:\TURBO5\TTT5\MISCTTT5.PAS');
- END;
-
- F is assigned the value "C".
-
- ___________________________________________________________________________
-
- File_Ext MiscTTT5
-
-
- Purpose Extracts the file extension from a fully qualified filename.
-
- Decln. File_Ext(FullName:string):string;
-
- Returns String
-
- Remarks This function is only available to the Turbo 5.0 programmer.
-
- FullName is the source filename.
-
- The period is removed.
-
-
- See Also File_Drive, File_Directory, File_Name
-
- Example
-
- VAR
- F : STRING;
- BEGIN
- F := FILE_EXT('C:\TURBO5\TTT5\MISCTTT5.PAS');
- END;
-
- F is assigned the value "PAS".
-
- ___________________________________________________________________________
-
- File_Name MiscTTT5
-
-
- Purpose Extracts the file name, excluding the extension, from a fully
- qualified filename.
-
- Decln. File_Name(FullName:string):string;
-
- Returns String
-
- Remarks This function is only available to the Turbo 5.0 programmer.
-
- FullName is the source filename.
-
- See Also File_Drive, File_Directory, File_Ext
-
- Example
-
- VAR
- F : STRING;
- BEGIN
- F := FILE_NAME('C:\TURBO5\TTT5\MISCTTT5.PAS');
- END;
-
- F is assigned the value "MISCTTT5".
-
- ___________________________________________________________________________
-
- File_Size MiscTTT5
-
-
- Purpose Returns the size of a file in bytes.
-
- Decln. File_Size(Filename:string):LongInt
-
- Returns Longint
-
- Remarks FileName is the source filename.
-
- If the file is not found, a file size of -1 is returned.
-
-
- See Also Exist
-
- Example
-
- VAR
- S : LONGINT;
- BEGIN
- S := FILE_SIZE('C:\COMMAND.COM');
- END;
-
- ___________________________________________________________________________
-
- FillScreen WinTTT5
-
-
- Purpose Fills part or all of the screen with a specific character.
-
- Decln. FillScreen(X1,Y1,X2,Y2,F,B:byte;Chr:char);
-
- Remarks X1, Y1 are the coordinates of the top left corner of the area to
- be filled.
- X2, Y2 are the coordinates of the lower right corner.
- F, B are the foreground and background display colors.
- Chr is the character to fill the screen.
-
- See Also ClearText, Attrib
-
- Example
-
- BEGIN
- FILLSCREEN(1,1,80,25,CYAN,BLACK,CHR(177));
- END;
-
- ___________________________________________________________________________
-
- FindCursor WinTTT5
-
-
- Purpose Determines the size and location of the cursor.
-
- Decln. FindCursor(var X,Y,Top,Bot:byte);
-
- Remarks The four parameters must be variables.
-
- X, Y are updated with the coordinates of the cursor.
- Top, Bot are updated with the top and bottom cursor scan lines.
-
- The scan codes refer to the actual location of the top and bottom
- of the cursor within a character field, where 0 is the top of the
- field (such as the top stroke of the letter T), and either 12 or
- 7 is the bottom of the field, on monochrome and color displays
- respectively.
-
- See Also SizeCursor, OnCursor, OffCursor, HalfCursor, FullCursor
-
-
- Example
-
- VAR
- COL,ROW,T,B : BYTE;
- BEGIN
- FINDCURSOR(COL,ROW,T,B);
- END;
-
- ___________________________________________________________________________
-
- First StrnTTT5
-
-
- Purpose Extracts the first part of a string.
-
- Decln. First(N:byte;Str:string):string;
-
- Returns String
-
- Remarks N is the number of leftmost characters to extract.
- Str is the source string.
-
- See Also Last
-
- Example
-
- VAR
- F : STRING;
- BEGIN
- F := FIRST(25,'ALL GOOD THINGS WILL COME TO PASS');
- END;
-
- The string F is assigned the value "All good things will come".
-
- ___________________________________________________________________________
-
- First_Capital StrnTTT5
-
-
- Purpose Returns the first capital letter in a string.
-
- Decln. First_Capital(Str:string):char;
-
- Returns Char
-
- Remarks Str is the source string.
-
- The function returns a null #0 if the string does not contain any
- capital letters.
-
- See Also First_Capital_Pos
-
- Example
-
-
- VAR
- CAP : CHAR;
- BEGIN
- CAP := FIRST_CAPITAL('3 LOAD');
- END;
-
- The variable Cap is updated with the value 'L'.
-
- ___________________________________________________________________________
-
- First_Capital_Pos StrnTTT5
-
-
- Purpose Returns the character positon of the first capital letter.
-
- Decln. First_Capital_Pos(Str:string):byte;
-
- Returns Byte
-
- Remarks Str is the source string.
-
- 0 is returned if the string does not contain a capital letter.
-
- See Also First_Capital
-
- Example
-
- VAR
- P : BYTE;
- BEGIN
- P := FIRST_CAPITAL_POS('3 LOAD');
- END;
-
- The variable P is assigned the value 3.
-
- ___________________________________________________________________________
-
- FlushKeyBuffer MiscTTT5
-
-
- Purpose Removes all keystrokes from the keyboard buffer.
-
- Decln. FlushKeyBuffer;
-
- Remarks Use this procedure to stop the type ahead effect.
-
- See Also GetKey
-
- Example
-
- VAR
- ANS : CHAR;
- BEGIN
- FWRITE(1,1,WHITE,RED,'YOU REALLY WANT TO FORMAT THE SERVER? (Y/N)');
- FLUSHKEYBUFFER;
-
- ANS := GETKEY;
- IF UPCASE(ANS) = 'Y' THEN
- FORMATSERVER;
- END;
-
- The keyboard is flushed in case the user had previously typed a Y in
- anticipation of a different question.
-
- ___________________________________________________________________________
-
- FullCursor WinTTT5
-
-
- Purpose Changes the text cursor to a full block.
-
- Decln. FullCursor;
-
- Remarks Sets the cursor on monochrome and color systems.
-
- See Also SizeCursor, HalfCursor, OnCursor, OffCursor.
-
- Example
-
- BEGIN
- IF OVERTYPEMODE THEN
- FULLCURSOR;
- END;
-
- ___________________________________________________________________________
-
- Future_date MiscTTT5
-
-
- Purpose Returns the date string by adding a specified number of days to a
- start date.
-
- Decln. Future_date(BaseDate:string; Fmt:byte;Days:word):string;
-
- Returns String
-
- Remarks BaseDate is the start date in string form.
- Fmt is the date format code of the date. The valid date formats
- are declared as constants in the MiscTTT5 unit:
- DDMMYY
- MMDDYY
- MMYY
- MMYYYY
- DDMMYYYY
- MMDDYYYY
- Days is the number of days from the BaseDate to the computed
- date.
-
- See Also Date_Within_Range, Valid_date, Date_to_Julian
-
- Example
-
-
- BEGIN
- WRITEAT(1,1,14,0,'THE BILL IS DUE
- '+FUTURE_DATE('07/06/89',MMDDYY,60)+'.');
- END;
-
- The function computes the date that is 60 days after 07/06/89.
-
- ___________________________________________________________________________
-
- FWriteLn FastTTT5
-
-
- Purpose Writes text at current cursor location and moves cursor to
- beginning of next line.
-
- Decln. FWriteLn(Str:strScreen);
-
- Remarks Str is the text to be displayed.
-
- The text is displayed in the FCol and Bcol colors, the same as
- ColWrite.
-
- See Also ColWrite, FWrite
-
- Example
-
- BEGIN
- CLRSCR;
- FCOL := YELLOW;
- BCOL := BLACK;
- FWRITELN('REMEMBER TO TYPE EXIT TO RETURN');
- FWRITELN('TO THE SPREADSHEET.');
- END;
-
- ___________________________________________________________________________
-
- FWrite FastTTT5
-
-
- Purpose Writes text at current cursor location and moves cursor to the
- end of the text.
-
- Decln. FWrite(Str:strscreen);
-
- Remarks Str is the text to be displayed.
-
- The text is displayed in the FCol and Bcol colors, the same as
- ColWrite.
-
- See Also ColWrite, FWriteLn
-
- Example
-
- VAR
-
- CH : CHAR;
- BEGIN
- FWRITE('DELETE THE FILE? (Y/N)');
- CH := GETKEY;
- .....
- END;
-
- ___________________________________________________________________________
-
- GetKey KeyTTT5
-
-
- Purpose Reads a character from the keyboard or mouse.
-
- Decln. GetKey:char;
-
- Returns Char
-
- Remarks This is the main function in the KeyTTT5 unit and is used
- throughout the Toolkit.
-
- This is a fully functional replacement for Turbo's internal
- ReadKey command. Both typed characters and mouse activity are
- returned. Refer to the appendix for a full list of all the
- character codes that are returned.
-
- See Also DelayKey, FlushKeyBuffer
-
- Example
-
- VAR
- CH : CHAR;
- BEGIN
- WRITECENTER(25,LIGHTCYAN,BLUE,'PRESS F10 TO CONTINUE');
- CH := GETKEY;
- IF CH <> #196 THEN
- HALT;
- END;
-
- The character code for F10 is #196. (See Appendix.)
-
- ___________________________________________________________________________
-
- GetScreenAttr WinTTT5
-
-
- Purpose Returns the display attribute (colors) at a specific location on
- the screen.
-
- Decln. GetScreenAttr(X,Y:byte):byte;
-
- Returns Byte
-
- Remarks X, Y are the screen coordinates.
-
-
- The display color is returned as a combined foreground/background
- attribute.
-
- See Also GetScreenChar
-
- Example
-
- VAR
- OLDATT:BYTE
- BEGIN
- OLDATT := GETSCREENATTR(1,1);
- END;
-
- The variable OldAtt is assigned the color attribute of the top left corner
- of the display.
-
- ___________________________________________________________________________
-
- GetScreenChar WinTTT5
-
-
- Purpose Returns the display character at a specific location on the
- display.
-
- Decln. GetScreenChar(X,Y:byte):char;
-
- Returns Char
-
- Remarks X, Y are the screen coordinates.
-
- See Also GetScreenAttr, GetScreenStr
-
- Example
-
- VAR
- OLDCHAR;
- BEGIN
- OLDCHAR := GETSCREENCHAR(20,5);
- END;
-
- The variable OldChar is assign the character that is displayed in column 20
- on line 5.
-
- ___________________________________________________________________________
-
- GetScreenStr WinTTT5
-
-
- Purpose Updates a string with the characters displayed at a specific
- location on the monitor.
-
- Decln. GetScreenStr(X1,X2,Y:byte;var Str:StrScreen);
-
- Remarks X1, X2 are the leftmost and rightmost X coordinates.
- Y is the line number.
-
- Str is the string variable that will be updated with the screen
- string.
-
- See Also GetScreenAttr, GetScreenChar
-
- Example
-
- VAR
- S : STRING;
- BEGIN
- GETSCREENSTR(30,48,1,S);
- IF S <> 'TECHNOJOCK SOFTWARE' THEN
- BEGIN
- FWRITELN('ILLEGAL COPYRIGHT NOTICE - ABORTING');
- HALT;
- END;
- END;
-
- ___________________________________________________________________________
-
- Get_Mouse_Action KeyTTT5
-
-
- Purpose Determines mouse activity, i.e. movement and button presses.
-
- Decln. Get_Mouse_Action(var But:button;var Hor,Ver:integer);
-
- Remarks But is updated with one of the following constants: NoB, LeftB,
- RightB, BothB.
- Hor, Ver are updated with the mouse movement in columns and rows
- (not pixels). The movement is returned relative to the last time
- the procedure was called.
-
- See Also Mouse_Installed
-
- Example
-
- VAR
- B : BUTTON;
- X,Y : BYTE;
- BEGIN
- REPEAT
- GET_MOUSE_ACTION(B,X,Y);
- UNTIL B = LEFTB;
- END;
-
- The program continues looping until the left button is pressed.
-
- ___________________________________________________________________________
-
- GrowFBox FastTTT5
-
-
- Purpose Draws an exploding box.
-
-
- Decln. GrowFBox(X1,Y1,X2,Y2,F,B,BoxType:Byte);
-
- Remarks X1, Y1 are the coordinates of the top left corner of the area to
- be changed.
- X2, Y2 are the lower right corner coordinates.
- F, B are the foreground and background colors.
- BoxType is a code to indicate the box type: 0 no box, 1 single
- line box, 2 double line box, 3 single top/bottom and double
- sides, 4 double top/bottom and single sides. If a box type in the
- range 5..255 is used, the box is drawn using the ASCII character
- represented by that number.
-
- The area of the display inside the Box border is cleared.
-
- If the box grows too quickly or too slowly, alter the global
- variable Speed. The default value is 200; increase the value to
- slow the speed (ugh!) or decrease it to speed the box up.
-
- See Also Box, FBox
-
- Example
-
- BEGIN
- SPEED := 400;
- GROWFBOX(1,1,80,12,WHITE,RED,1);
- GROWFBOX(1,13,80,25,BLUE,LIGHTGRAY,2);
- END;
-
- ___________________________________________________________________________
-
- GrowMkWin WinTTT5
-
-
- Purpose Creates a text window on the screen and saves the screen contents
- that have been overlayed. This procedure is the functional
- equivalent of MkWin, except that the window box explodes onto the
- screen.
-
- Decln. GrowMkWin(X1,Y1,X2,Y2,F,B,BoxType:byte);
-
- Remarks X1, Y1 are the top left coordinates of the window.
- X2, Y2 are the bottom right coordinates of the window.
- F, B are the foreground and background display colors.
- BoxType is the box code. The normal box codes are:
- 0 Box
- 1 Single line
- 2 Double Line
- 3 Single top/bottom and double sides
- 4 Double top/bottom and double sides
- 5 Same as code 0 plus a box shadow
- 6 Same as code 1 plus a box shadow
- 7 Same as code 2 plus a box shadow
- 8 Same as code 3 plus a box shadow
- 9 Same as code 4 plus a box shadow
- If any other code (i.e. 10..255) is used, the box is drawn using
-
- the ASCII character represented by the number.
-
- If the box grows too quickly or too slowly, alter the global
- variable Speed. The default value is 200; increase the value to
- slow the speed or decrease it to speed the box up.
-
- See Also MkWin, RmWin
-
- Example
-
- BEGIN
- SPEED := 400;
- GROWMKWIN(1,1,80,12,WHITE,RED,1);
- END;
-
- ___________________________________________________________________________
-
- HalfCursor WinTTT5
-
-
- Purpose Changes the cursor to a half block.
-
- Decln. HalfCursor;
-
- Remarks Sets the cursor on monochrome and color systems.
-
- See Also SizeCursor, FullCursor, OnCursor, OffCursor.
-
- Example
-
- BEGIN
- IF INSERTMODE THEN
- HALFCURSOR;
- END;
-
- ___________________________________________________________________________
-
- Hide_Mouse_Cursor KeyTTT5
-
-
- Purpose Makes the mouse cursor invisible.
-
- Decln. Hide_Mouse_Cursor;
-
- Remarks The mouse is still active, but will not be visible. The text
- cursor is not affected by this procedure.
-
- See Also Show_Mouse_Cursor;
-
- Example
-
- BEGIN
- HIDE_MOUSE_CURSOR;
- END;
-
-
- ___________________________________________________________________________
-
- HorizLine FastTTT5
-
-
- Purpose Draws a horizontal line on the screen.
-
- Decln. HorizLine(X1,X2,Y,F,B,LineType:byte);
-
- Remarks X1, X2 are the leftmost and rightmost X coordinates of the line.
- Y is the Y coordinate.
- F, B are the foreground and background display colors.
- LineType is 1 for a single line and 2 for a double line.
-
- See Also VertLine, Box
-
- Example
-
- BEGIN
- HORIZLINE(10,70,13,LIGHTCYAN,BLUE,1);
- END;
-
- Draws a single line across the center of the display.
-
- ___________________________________________________________________________
-
- Initialize_Menu NestTTT5
-
-
- Purpose Initializes a menu variable in preparation for the addition of
- topics.
-
- Decln. Initialize_Menu(var M:Nest_menu;Tit:MenuStr;W:byte;L:word);
-
- Remarks M is the menu variable being initialized.
- Tit is an optional title for the menu.
- W is the width of the menu box. If a width 0 is used, the Toolkit
- will determine a suitable width.
- L is the number of visible menu lines (or topics) to display in
- the menu window. If L is set to 0, the Toolkit will determine a
- suitable value.
-
- See Also Add_Topic
-
- Example
-
- VAR
- MAIN_MENU,
- FILE_MENU,
- MISC_MENU: NEST_MENU
- BEGIN
- INITIALIZE_MENU(MAIN_MENU,'MAIN MENU',15,5);
- INITIALIZE_MENU(FILE_MENU,'FILE COMMANDS',0,0);
- INITIALIZE_MENU(MISC_MENU,'POT POURRI',0,20);
- END;
-
-
- ___________________________________________________________________________
-
- Integer_Field IOTTT5
-
-
- Purpose Assigns an integer variable to an input field.
-
- Decln. Integer_Field(ID:byte;var
- IVar:integer;Fmt:string;Min,Max:integer);
-
- Remarks ID is the field ID number.
- Ivar is the name of the integer variable that will be updated
- with the user's input.
- Fmt is the format of the input field. Pass a null string '' for
- the default.
- Min, Max are the minimum and maximum values for range check. Set
- to 0 to accept any integer value.
-
- The field must be declared with Add_Field prior to calling this
- procedure.
-
- See Also Add_Field, Word_Field, Byte_Field, LongInt_Field, Real_Field,
- Date_Field, String_Field
-
- Example
-
- BEGIN
- ACTIVATE_TABLE(3);
- INTEGER_FIELD(3, LENGTH, '', 0,0);
- INTEGER_FIELD(4, WIDTH, '', 1,5000);
- END;
-
- ___________________________________________________________________________
-
- Int_to_Str StrnTTT5
-
-
- Purpose Converts a byte, word, integer or longint to a string.
-
- Decln. Int_to_Str(Number:longint):string;
-
- Returns String
-
- Remarks Number is the value to be converted.
-
- See Also Real_to_Str, Str_to_Int
-
- Example
-
-
- VAR
- SALARY : STRING;
- BEGIN
- SALARY := INT_TO_STR(50000);
- END;
-
-
- ___________________________________________________________________________
-
- Julian_to_Date MiscTTT5
-
-
- Purpose Converts a Julian date into a string.
-
- Decln. Julian_to_Date(J:dates;Fmt:byte):string;
-
- Returns String
-
- Remarks J is the date in Julian form.
- Fmt is the date format code of the date. The valid date formats
- are declared as constants in the MISCTTT5 unit:
- DDMMYY
- MMDDYY
- MMYY
- MMYYYY
- DDMMYYYY
- MMDDYYYY
-
- See Also Date_to_Julian
-
- Example
-
- BEGIN
- FWRITE(JULIAN_TO_DATE(TODAY_IN_JULIAN,MMDDYYYY));
- END;
-
- ___________________________________________________________________________
-
- LastPos StrnTTT5
-
-
- Purpose Finds the last occurence of a character in a string.
-
- Decln. LastPos(C:char;Str:string):byte;
-
- Returns Byte
-
- Remarks C is the character.
- Str is the source string.
-
- See Also Pos (Internal Turbo function)
-
- Example
-
- VAR
- B : BYTE;
- BEGIN
- B := LASTPOS('J','TECHNOJOCK SOFTWARE!');
- END;
-
- The variable B is assigned the value 12.
-
-
- ___________________________________________________________________________
-
- Last StrnTTT5
-
-
- Purpose Extracts the last part of a string.
-
- Decln. Last(Count:byte; Str:string):string;
-
- Returns String
-
- Remarks Count is the number of characters to extract.
- Str is the source string.
-
- See Also First
-
- Example
-
- VAR
- TTT : STRING;
- BEGIN
- TTT := LAST(11,'NEVER TAKE DRUGS!');
- END;
-
- The string TTT is assigned the value "Take Drugs!".
-
- ___________________________________________________________________________
-
- LeftShift_Pressed KeyTTT5
-
-
- Purpose Determines whether the Left shift key is being depressed.
-
- Decln. LeftShift_Pressed:boolean;
-
- Returns Boolean
-
- Remarks Returns true if the left shift key is being depressed.
-
- See Also RightShift_Pressed, Shift_Pressed
-
- Example
-
- BEGIN
- IF LEFTSHIFT_PRESSED THEN
- WRITEAT(1,25,YELLOW,BLACK,CHR(24));
- END;
-
- ___________________________________________________________________________
-
- LongInt_Field IOTTT5
-
-
- Purpose Assigns a longint variable to an input field.
-
-
- Decln. LongInt_Field(ID:byte;var
- LVar:longint;Fmt:string;Min,Max:longint);
-
- Remarks ID is the field ID number.
- Lvar is the name of the longint variable that will be updated
- with the user's input.
- Fmt is the format of the input field. Pass a null string '' for
- the default.
- Min, Max are the minimum and maximum values for range check. Set
- to 0 to accept any longint value.
-
- The field must be declared with Add_Field prior to calling this
- procedure.
-
- See Also Add_Field, Word_Field, Byte_Field, Integer_Field, Real_Field,
- Date_Field, String_Field
-
- Example
-
- BEGIN
- ACTIVATE_TABLE(3);
- LONGINT_FIELD(5, AREA, '', 1000,60000);
- LONGINT_FIELD(6, VOLUME, '', 0,0);
- END;
-
- ___________________________________________________________________________
-
- Lower StrnTTT5
-
-
- Purpose Converts a string to lower case.
-
- Decln. Lower(Str:string):string;
-
- Returns String
-
- Remarks Str is the source string.
-
- Only the upper case alphabet A to Z is affected.
-
- See Also Upper, Proper
-
- Example
-
- VAR
- TTT : STRING
- BEGIN
- TTT := LOWER('LEARNING TO TYPE');
- END;
-
- The variable TTT is assigned the value "learning to type".
-
-
- ___________________________________________________________________________
-
- Menu_Set MenuTTT5
-
-
- Purpose Sets a menu variable with the Toolkit default values.
-
- Decln. Menu_Set(var M:Menu_Record);
-
- Remarks M is the Menu_Record variable that will define the menu display
- characteristics.
-
- See Also DisplayMenu
-
- Example
-
- VAR
- MAIN ; MENU_RECORD;
- BEGIN
- MENU_SET(MAIN);
- END;
-
- The variable Main is set with the default menu settings.
-
- ___________________________________________________________________________
-
- MkWin WinTTT5
-
-
- Purpose Creates a text window on the screen and saves the screen contents
- that have been overlayed.
-
- Decln. MkWin(X1,Y1,X2,Y2,F,B,BoxType:byte);
-
- Remarks X1, Y1 are the top left coordinates of the window.
- X2, Y2 are the bottom right coordinates of the window.
- F, B are the foreground and background display colors.
- BoxType is the box code. The normal box codes are:
- 0 Box
- 1 Single line
- 2 Double Line
- 3 Single top/bottom and double sides
- 4 Double top/bottom and double sides
- 5 Same as code 0 plus a box shadow
- 6 Same as code 1 plus a box shadow
- 7 Same as code 2 plus a box shadow
- 8 Same as code 3 plus a box shadow
- 9 Same as code 4 plus a box shadow
- If any other code (i.e. 10..255) is used, the box is drawn using
- the ASCII character represented by the number.
-
- See Also GrowMkWin, RmWin
-
- Example
-
-
- BEGIN
- MKWIN(1,1,40,7,WHITE,BLUE,4);
- END;
-
- A white on blue window is displayed in the top left area of the display.
-
- ___________________________________________________________________________
-
- Modify_Topic NestTTT5
-
-
- Purpose To change all the settings of a menu topic.
-
- Decln. Modify_Topic(var
- M:Nest_Menu;TopicNo:word;N:MenuStr;A:Boolean;Key:char;code:intege
- r;Sub:MenuPtr);
-
- Remarks M is the name of the menu variable that contains the topic.
- TopicNo is the number of the topic to be modified.
- N is the topic text, i.e. the string that will be displayed in
- the menu.
- A indicates if the topic is selectable or non-selectable. Set to
- true for normal selectable topics.
- Key is the character code of a hotkey that can be used to execute
- the topic. Set to #0 to disable the hotkey.
- Code is an integer code that will be passed to the despatcher
- procedure to indicate that the user selected this topic. Set the
- code to zero if a sub-menu is going to be called.
- Sub is the address of a sub-menu that is to be called if the
- topic is selected. Set to NIL if the topic executes a despatcher
- procedure rather than displaying a sub-menu.
-
- See Also Add_Topic, Modify_Topic_Name, Modify_Topic_Active,
- Modify_Topic_Hotkey, Modify_Topic_Retcode, Modify_Topic_Submenu
-
- Example
-
- BEGIN
- MODIFY_TOPIC(BOBS_MENU,3,'FILE LOAD',TRUE,#166,300,NIL);
- END;
-
- ___________________________________________________________________________
-
- Modify_Topic_Active NestTTT5
-
-
- Purpose Modifies the activity status of a topic.
-
- Decln. Modify_Topic_Active(var M:Nest_Menu;TopicNo:word;Active:Boolean);
-
- Remarks M is the name of the menu variable that contains the topic.
- TopicNo is the number of the topic to be modified.
- Active indicates if the topic is selectable or non-selectable.
- Set to true for normal selectable topics.
-
-
-
- See Also Add_Topic, Modify_Topic_Name, Modify_Topic, Modify_Topic_Hotkey,
- Modify_Topic_Retcode, Modify_Topic_Submenu
-
- Example
-
- BEGIN
- MODIFY_TOPIC_ACTIVE(BOBS_MENU,7,TRUE);
- END;
-
- ___________________________________________________________________________
-
- Modify_Topic_HotKey NestTTT5
-
-
- Purpose Modifies the hotkey selection code of a topic.
-
- Decln. Modify_Topic_Hotkey(var M:Nest_Menu;TopicNo:word;Key:char);
-
- Remarks M is the name of the menu variable that contains the topic.
- TopicNo is the number of the topic to be modified.
- Key is the character code of a hotkey that can be used to execute
- the topic. Set to #0 to disable the hotkey.
-
- See Also Add_Topic, Modify_Topic_Name, Modify_Topic_Active, Modify_Topic,
- Modify_Topic_Retcode, Modify_Topic_Submenu
-
- Example
-
- BEGIN
- MODIFY_TOPIC_HOTKEY(BOBS_MENU,1,#146);
- END;
-
- ___________________________________________________________________________
-
- Modify_Topic_Name NestTTT5
-
-
- Purpose Modifies the topic description.
-
- Decln. Modify_Topic_Name(var M:Nest_Menu;TopicNo:word;Txt:MenuStr);
-
- Remarks M is the name of the menu variable that contains the topic.
- TopicNo is the number of the topic to be modified.
- Txt is the topic text, i.e. the string that will be displayed in
- the menu.
-
- See Also Add_Topic, Modify_Topic, Modify_Topic_Active,
- Modify_Topic_HotKey, Modify_Topic_Retcode, Modify_Topic_Submenu
-
- Example
-
- BEGIN
- MODIFY_TOPIC_NAME(BOBS_MENU,3,'INSERT OFF');
- END;
-
-
- ___________________________________________________________________________
-
- Modify_Topic_Retcode NestTTT5
-
-
- Purpose Modifies the topic code that is passed to the despatcher when the
- topic is selected.
-
- Decln. Modify_Topic_Retcode(var M:Nest_Menu;TopicNo:word;Retcode:char);
-
- Remarks M is the name of the menu variable that contains the topic.
- TopicNo is the number of the topic to be modified.
- RetCode is an integer code that will be passed to the despatcher
- procedure to indicate that the user selected this topic. Set the
- code to zero if a sub-menu is going to be called.
-
- See Also Add_Topic, Modify_Topic, Modify_Topic_Active,
- Modify_Topic_HotKey, Modify_Topic_Name, Modify_Topic_Submenu
-
- Example
-
- BEGIN
- MODIFY_TOPIC_RETCODE(BOBS_MENU,11,400);
- END;
-
- ___________________________________________________________________________
-
- Modify_Topic_Submenu NestTTT5
-
-
- Purpose Modifies the Topic pointer to a sub-menu.
-
- Decln. Modify_Topic_SubMenu(var M:Nest_Menu;TopicNo:word;Sub:MenuPtr);
-
- Remarks M is the name of the menu variable that contains the topic.
- TopicNo is the number of the topic to be modified.
- Sub is the address of a sub-menu that is to be called if the
- topic is selected. Use the '@' argument to pass the address of a
- menu, e.g. @Print_menu. Set to NIL if the topic executes a
- despatcher procedure rather than displaying a sub-menu.
-
- See Also Add_Topic, Modify_Topic, Modify_Topic_Active,
- Modify_Topic_HotKey, Modify_Topic_Retcode, Modify_Topic_Name
-
- Example
-
- BEGIN
- MODIFY_TOPIC_SUBMENU(BOBS_MENU,3,@FILE_MENU);
- END;
-
-
- ___________________________________________________________________________
-
- Mouse_Installed KeyTTT5
-
-
- Purpose Indicates if a Microsoft compatible mouse is installed.
-
- Decln. Mouse_Installed:boolean;
-
- Returns Boolean
-
- Remarks This procedure is automatically called when the program is loaded
- and updates the global boolean variable Moused. Check the
- variable Moused in preference to calling this procedure.
-
- ___________________________________________________________________________
-
- MoveScreenBlock WinTTT5
-
-
- Purpose Moves one part of the screen to another part of the display.
-
- Decln. MoveScreenBlock(X1,Y1,X2,Y2,X,Y:byte);
-
- Remarks X1, Y1 are the coordinates of the top left corner of the source
- area.
- X2, Y2 are the coordinates of the bottom right corner of the
- source area.
- X, Y are the coordinates of the top left corner of the target
- area.
-
- The source area of the screen is replaced with spaces, i.e.
- blanked out.
-
- See Also CopyScreenBlock
-
- Example
-
- BEGIN
- MOVESCREENBLOCK(1,1,80,3,1,22)
- END;
-
- ___________________________________________________________________________
-
- Move_Mouse KeyTTT5
-
-
- Purpose Repositions the mouse cursor.
-
- Decln. Move_Mouse(X,Y:byte);
-
- Remarks X, Y are the new mouse coordinates.
-
- This procedure is the functional equivalent of GotoXY for the
- text cursor.
-
-
- See Also Confine_Mouse_Horiz, Confine_Mouse_Vert
-
- Example
-
- BEGIN
- MOVE_MOUSE(40,10);
- END;
-
- ___________________________________________________________________________
-
- NumOn KeyTTT5
-
-
- Purpose Indicates if the Num Lock key is on.
-
- Decln. NumOn:boolean;
-
- Returns Boolean
-
- Remarks Returns true if the Num Lock key is "illuminated".
-
- See Also Set_Num, CapsOn, ScrollOn
-
- Example
-
- BEGIN
- IF NUMON THEN
- WRITEAT(70,1,WHITE,BLACK,'NUM')
- ELSE
- WRITEAT(70,1,WHITE,BLACK,' ')
- END;
-
- ___________________________________________________________________________
-
- OffCursor WinTTT5
-
-
- Purpose Makes the text cursor disappear.
-
- Decln. OffCursor;
-
- Remarks This procedure turns the cursor off on monochrome and color
- systems.
-
- See Also SizeCursor, HalfCursor, OnCursor, FullCursor
-
- Example
-
- BEGIN
- OFFCURSOR;
- END;
-
-
- ___________________________________________________________________________
-
- OnCursor WinTTT5
-
-
- Purpose Makes the text cursor appear in the default DOS shape, i.e. an
- underscore.
-
- Decln. OnCursor;
-
- Remarks This procedure resets the cursor on monochrome and color systems.
-
- See Also SizeCursor, HalfCursor, OffCursor, FullCursor
-
- Example
-
- BEGIN
- ONCURSOR;
- END;
-
- ___________________________________________________________________________
-
- OverType StrnTTT5
-
-
- Purpose Combines two overlapping strings.
-
- Decln. OverType(N:byte;Source,Target:string):string;
-
- Returns String
-
- Remarks N is the character position that string Source will be overlayed
- on string Target.
-
- Any characters after the Nth position in string Target will be
- overwritten by the characters in string Source.
-
- Example
-
- VAR
- TTT:STRING
- BEGIN
- TTT := OVERTYPE(5,'TECHNOJOCK','BOB AINSBURY');
- END;
-
- The string TTT is assigned the value "Bob TechnoJock".
-
- ___________________________________________________________________________
-
- PadCenter StrnTTT5
-
-
- Purpose Expands and centers a string.
-
- Decln. PadCenter(Str:String;Size:byte;Pad:Char);string;
-
-
- Returns String
-
- Remarks Str is the source string.
- Size is the new string length.
- Pad is the character to expand the string with.
-
- See Also PadLeft, PadRight
-
- Example
-
- VAR
- TTT:STRING;
- BEGIN
- TTT := PADCENTER(' ASTERISK ',20,'*');
- END;
-
- The string TTT is assigned the value "***** ASTERISK *****".
-
- ___________________________________________________________________________
-
- Padleft StrnTTT5
-
-
- Purpose Expands and left justifies a string.
-
- Decln. PadLeft(Str:String;Size:byte;Pad:Char);string;
-
- Returns String
-
- Remarks Str is the source string.
- Size is the new string length.
- Pad is the character to expand the string with.
-
- See Also PadCenter, PadRight
-
- Example
-
- VAR
- TTT:STRING;
- BEGIN
- TTT := PADLEFT(' ASTERISK ',20,'*');
- END;
-
- The string TTT is assigned the value " ASTERISK **********".
-
- ___________________________________________________________________________
-
- PadRight StrnTTT5
-
-
- Purpose Expands and right justifies a string.
-
- Decln. PadRight(Str:String;Size:byte;Pad:Char);string;
-
-
- Returns String
-
- Remarks Str is the source string.
- Size is the new string length.
- Pad is the character to expand the string with.
-
- See Also PadCenter, PadLeft
-
- Example
-
- VAR
- TTT:STRING;
- BEGIN
- TTT := PADRIGHT(' ASTERISK ',20,'*');
- END;
-
- The string TTT is assigned the value "********** ASTERISK ".
-
- ___________________________________________________________________________
-
- PartRestoreScreen WinTTT5
-
-
- Purpose Restores a portion of a saved/virtual screen to the display.
-
- Decln. PartRestoreScreen(Page,X1,Y1,X2,Y2,X,Y:byte);
-
- Remarks Page is the saved/virtual screen number of the stored image.
- X1, Y1 are the top left coordinates of the area to be restored.
- X2, Y2 are the lower right coordinates of the area to be
- restored.
- X, Y are the top left coordinates of the target location on the
- visible screen.
-
- The screen can either be a saved screen created with SaveScreen
- or a virtual screen created with CreateScreen.
-
- See Also RestoreScreen, PartSlideRestoreScreen, SlideRestoreScreen
-
- Example
-
- BEGIN
- SAVESCREEN(3);
- ....
- .. {SCREEN MODIFYING PROCEDURES}
- ....
- PARTRESTORESCREEN(3,1,1,80,12,1,13);
- DISPOSESCREEN(3);
- END;
-
- The screen is saved to page 3 and then some other procedures modify the
- display. Finally, the top half of the saved screen is restored to the lower
- half of the screen display.
-
-
- ___________________________________________________________________________
-
- PartSlideRestoreScreen WinTTT5
-
-
- Purpose Restores a portion of a saved/virtual screen to the display with
- a sliding effect.
-
- Decln. PartSlideRestoreScreen(Page:byte;Way:direction;X1,Y1,X2,Y2:byte);
-
- Remarks Page is the saved/virtual screen number of the stored image.
- Way is the direction to slide the restored image. Valid
- directions are Up, Down, Left, Right.
- X1, Y1 are the top left coordinates of the area to be restored.
- X2, Y2 are the lower right coordinates of the area to be
- restored.
-
- The screen can either be a saved screen created with SaveScreen
- or a virtual screen created with CreateScreen.
-
-
-
- See Also SlideRestoreScreen, RestoreScreen, PartRestoreScreen
-
- Example
-
- BEGIN
- SAVESCREEN(3);
- ....
- .. {SCREEN MODIFYING PROCEDURES}
- ....
- PARTSLIDERESTORESCREEN(3,UP,1,1,40,25);
- DISPOSESCREEN(3);
- END;
-
- The screen is saved to page 3 and then some other procedures modify the
- display. Finally, the left half of the saved screen is restored by sliding
- it up the display.
-
- ___________________________________________________________________________
-
- PlainWrite FastTTT5
-
-
- Purpose To write text to the screen very quickly in the default color
- attribute.
-
- Decln. PlainWrite(X,Y:byte;Str:string);
-
- Remarks X, Y are the coordinates of the first character.
- Str is the text to display.
-
-
- See Also WriteAt, ColWrite, Fwrite, FwriteLn
-
-
- Example
-
- BEGIN
- CLEARTEXT(1,1,80,25,WHITE,BLUE);
- PLAINWRITE(1,1,'TOP LEFT OF SCREEN');
- PLAINWRITE(59,25,'LOWER RIGHT OF SCREEN');
- END;
-
- ___________________________________________________________________________
-
- PosCursor WinTTT5
-
-
- Purpose Moves text cursor.
-
- Decln. PosCursor(X,Y:byte);
-
- Remarks X, Y are the new cursor coordinates.
-
- This is similar to Turbo's GotoXY procedure, except the Turbo
- "window" coordinates are ignored.
-
- See Also OffCursor, OnCursor, SizeCursor, FindCursor
-
- Example
-
- BEGIN
- POSCURSOR(10,15);
- END;
-
- ___________________________________________________________________________
-
- PosWord StrnTTT5
-
-
- Purpose Determines the starting character position of a word.
-
- Decln. PosWord(WordNo:byte;Str:string):byte;
-
- Returns Byte
-
- Remarks WordNo is the number of the word to check.
- Str is the source string.
-
- If there are too few words in the source string, a 0 is returned.
-
- See Also WordCnt, ExtractWords
-
- Example
-
- VAR
- B:BYTE;
- BEGIN
- B := POSWORD(3,'THE QUICK BROWN LINEBACKER');
- END;
-
- The variable B is assigned the value 11.
-
-
- ___________________________________________________________________________
-
- Printer_Ready MiscTTT5
-
-
- Purpose Indicates if the printer is connected and online.
-
- Decln. Printer_Ready:boolean;
-
- Returns Boolean
-
- Remarks This function only returns true if the printer is fully operative
- and in the Ready state. If the printer is not ready, use the
- procedure Printer_Status to determine the cause of the problem.
-
- See Also
-
- Example
-
- BEGIN
- IF PRINTER_READY THEN
- PRINTSCREEN;
- END;
-
- ___________________________________________________________________________
-
- Printer_Status MiscTTT5
-
-
- Purpose Returns the detailed status of the printer.
-
- Decln. Printer_Status:byte;
-
- Returns Byte
-
- Remarks The values returned by this function are:
-
- 0 All is well!
- 1 No paper
- 2 Off Line
- 3 Busy
- 4 Unknown problem
-
- See Also Printer_Ready
-
- Example
-
- BEGIN
- CASE PRINTER_STATUS OF
- 0 : PRINT_REPORT;
- 1 : FWRITELN('ADD PAPER TO THE PRINTER, IDIOT');
- 2 : FWRITELN('PRESS THE ONLINE BUTTON ON THE PRINTER');
- 3 : FWRITELN('PRINTER IS BUSY, PLEASE WAIT');
- 4 : FWRITELN('PRINTER ERROR. CHECK IT OUT!');
- END;
-
-
- ___________________________________________________________________________
-
- PrintScreen MiscTTT5
-
-
- Purpose Emulates the Print Scrn key.
-
- Decln. PrintScreen;
-
- Example
-
- BEGIN
- IF PRINTER_READY THEN
- PRINTSCREEN;
- END;
-
- ___________________________________________________________________________
-
- Process_Input IOTTT5
-
-
- Purpose Initiates the user's full screen edit session.
-
- Decln. Process_Input(StartField:byte);
-
- Remarks StartField is the field ID number of the field that should be
- highlighted at the start of the edit session.
-
- This procedure must only be called after all the fields have been
- defined. The procedure controls the user's edit session.
-
- Control is returned to the calling program when the user ends the
- update session. The session is ended by the user pressing the end
- key (default F10), the Esc key (if escape is enabled), a Hooked
- procedure that returns a refresh code of End_Input or trying to
- move to the next field when the next field has been defined as
- zero.
-
- The global variable I_Char is updated with the last key pressed
- by the user.
-
- See Also Display_All_Fields
-
- Example
-
- BEGIN
- PROCESS_INPUT(1);
- END;
-
- ___________________________________________________________________________
-
- Proper StrnTTT5
-
-
- Purpose Converts a string to proper case, i.e. the first character of
- each word is capitalized.
-
-
- Decln. Proper(Str:string):string;
-
- Returns String
-
- Remarks Str is the source string.
-
- See Also Upper, Lower
-
- Example
-
- VAR
- TTT : STRING
- BEGIN
- TTT := PROPER('TECHNOJOCK SOFTWARE INC.');
- END;
-
- The variable TTT is assigned the value "Technojock Software, Inc.".
-
- ___________________________________________________________________________
-
- Pull_Menu PullTTT5
-
-
- Purpose Displays a pull down menu.
-
- Decln. Pull_menu(Def:Pull_array;var PickM, PickS:byte);
-
- Remarks Def is the string array containing the menu description, i.e. all
- the topics.
- PickM is the main menu topic that should be highlighted
- initially. It is returned with the main menu of the user's
- selection. If the user ESCapes, PickM is set to 0.
- PickS is the sub menu topic that should be highlighted initially.
- It is returned with the sub-topic selected by the user.
-
- The global variable PTTT controls the display characteristics of
- the menu. Modify this variable to alter the look and feel of the
- menu.
-
- Example
-
- VAR
- MAJOR,MINOR : BYTE;
- BEGIN
- MAJOR := 1;
- MINOR := 1;
- PULL_MENU(MYMENU,MAJOR,MINOR);
- END;
-
-
- ___________________________________________________________________________
-
- Read_Alpha ReadTTT5
-
-
- Purpose Provides single line input of alpha characters, offering full
- line editing features, optional prompt display and optional box
- drawing.
-
- Decln. Read_Alpha(X,Y,L:byte;Prompt:strScreen;Box:byte;Var
- Str:strscreen);
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- L is the length of the input line.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
- Box is a box code. The codes are the same as for the Box
- procedure in FastTTT5. To suppress the box, use a code of zero.
- Str is the string that will be updated with the user's input.
-
- The user will only be able to input normal alphabetic characters
- and spaces.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- See Also Read_String, Read_String_Upper, Read_YN
-
- Example
-
- VAR
- TTT : STRSCREEN;
- BEGIN
- TTT := '';
- READ_ALPHA(5,10,40,'ENTER YOUR NAME > ',1,TTT);
- END;
-
- ___________________________________________________________________________
-
- Read_Byte ReadTTT5
-
-
- Purpose Provides single line input of a number of type byte.
-
- Decln. Read_Byte(X,Y,L:byte;Prompt:strScreen;Box:byte;Var
- Bvar:byte;Min,Max:byte);
-
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- L is the length of the input line.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
- Box is a box code. The codes are the same as for the Box
- procedure in FastTTT5. To suppress the box, use a code of zero.
- Bvar is the byte variable that will be updated with the user's
- input.
- Min, Max are the minimum and maximum acceptable values for
- automatic range checking. Set the values to 0 to accept any byte
- value.
-
- The user will only be able to input number characters, and the
- value will be automatically validated to ensure it lies within
- the Min, Max range.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- See Also Read_Int, Read_Word, Read_LongInt, Read_Real.
-
- Example
-
- VAR
- B : BYTE;
- BEGIN
- READ_BYTE(1,10,3,'HOW OLD ARE YOU',0,B,1,120);
- END;
-
- ___________________________________________________________________________
-
- Read_Int ReadTTT5
-
-
- Purpose Provides single line input of a number of type integer.
-
- Decln. Read_Int(X,Y,L:byte;Prompt:strScreen;Box:byte;Var
- Ivar:integer;Min,Max:integer);
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- L is the length of the input line.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
-
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
- Box is a box code. The codes are the same as for the Box
- procedure in FastTTT5. To suppress the box, use a code of zero.
- Ivar is the integer variable that will be updated with the user's
- input.
- Min, Max are the minimum and maximum acceptable values for
- automatic range checking. Set the values to 0 to accept any
- integer value.
-
- The user will only be able to input number characters, and the
- value will be automatically validated to ensure it lies within
- the Min Max range.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- See Also Read_Byte, Read_Word, Read_LongInt, Read_Real.
-
- Example
-
- VAR
- I: INTEGER;
- BEGIN
- READ_INT(1,10,6,'',2,I,0,0);
- END;
-
- ___________________________________________________________________________
-
- Read_Longint ReadTTT5
-
-
- Purpose Provides single line input of a number of type longint.
-
- Decln. Read_LongInt(X,Y,L:byte;Prompt:strScreen;Box:byte;Var
- Lvar:longint;Min,Max:longint);
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- L is the length of the input line.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
- Box is a box code. The codes are the same as for the Box
- procedure in FastTTT5. To suppress the box, use a code of zero.
- Lvar is the longint variable that will be updated with the user's
- input.
-
- Min, Max are the minimum and maximum acceptable values for
- automatic range checking. Set the values to 0 to accept any
- longint value.
-
- The user will only be able to input number characters, and the
- value will be automatically validated to ensure it lies within
- the Min, Max range.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- See Also Read_Byte, Read_Word, Read_Int, Read_Int, Read_Real.
-
- Example
-
- VAR
- LONGI: LONGINT;
- BEGIN
- READ_LONG(1,10,9,'PICK A NUMBER ',1,LONGI,0,0);
- END;
-
- ___________________________________________________________________________
-
- Read_Password ReadTTT5
-
-
- Purpose Provides single line input of alpha characters without echoing
- the user's characters on the screen.
-
- Decln. Read_Password(X,Y,L:byte;Prompt:strScreen;Box:byte;Var
- Str:strScreen);
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- L is the length of the input line.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
- Box is a box code. The codes are the same as for the Box
- procedure in FastTTT5. To suppress the box, use a code of zero.
- Str is the string that will be updated with the user's input.
-
- Every time a character is input, a '#' character is echoed on the
- screen. This procedure is designed for password input.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- See Also Read_String, Read_Alpha
-
- Example
-
- VAR
- PSW : STRING;
- BEGIN
- READ_PASSWORD(20,25,20,'^ ENTER YOUR PASSWORD ',1,PSW');
- END;
-
- ___________________________________________________________________________
-
- Read_Real ReadTTT5
-
-
- Purpose Provides single line input of a number of type real.
-
- Decln. Read_Real(X,Y,L:byte;Prompt:strScreen;Box:byte;Var
- Rvar:real;Min,Max:real);
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- L is the length of the input line.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
- Box is a box code. The codes are the same as for the Box
- procedure in FastTTT5. To suppress the box, use a code of zero.
- Rvar is the real variable that will be updated with the user's
- input.
- Min, Max are the minimum and maximum acceptable values for
- automatic range checking. Set the values to 0 to accept any real
- value.
-
- The user will only be able to input number characters, and the
- value will be automatically validated to ensure it lies within
- the Min, Max range.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- See Also Read_Byte, Read_Word, Read_Int, Read_Int, Read_LongInt.
-
- Example
-
-
- VAR
- R: REAL;
- BEGIN
- READ_REAL(1,10,9,'TICKET PRICE',1,R,0,1199.99);
- END;
-
- ___________________________________________________________________________
-
- Read_Select ReadTTT5
-
-
- Purpose Displays a horizontal or vertical list of choices.
-
- Decln. Read_Select(X,Y:byte;Prompt,Txt:StrScreen;var Choice:byte);
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
- Txt is a string containing the list of choices. Each choice is
- separated by a space. If a choice is composed of more than one
- word, the words must be connected with the underscore '_'
- character. By default, the choices list is displayed horizontally
- across the screen. However, if the first character in the choices
- string is a carat '^', the list is displayed vertically.
- Choice is a byte variable that is updated with the value of the
- user's selected choice.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- Example
-
- VAR
- VAR PICK : BYTE;
- BEGIN
- READ_SELECT(10,5,'HOW YA DOIN','COOL OK BAD WILD FOXY',PICK);
- END;
-
- ___________________________________________________________________________
-
- Read_String ReadTTT5
-
-
- Purpose Provides single line input of any characters, offering full line
- editing features, optional prompt display and optional box
-
- drawing.
-
- Decln. Read_String(X,Y,L:byte;Prompt:strScreen;Box:byte;Var
- Str:strscreen);
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- L is the length of the input line.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
- Box is a box code. The codes are the same as for the Box
- procedure in FastTTT5. To suppress the box, use a code of zero.
- Str is the string that will be updated with the user's input.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- See Also Read_Alpha, Read_String_Upper, Read_YN
-
- Example
-
- VAR
- TTT : STRSCREEN;
- BEGIN
- TTT := '';
- READ_STRING(5,10,40,'STREET ADDRESS ===> ',1,TTT);
- END;
-
- ___________________________________________________________________________
-
- Read_String_Upper ReadTTT5
-
-
- Purpose This procedure is the functional equivalent of Read_String,
- except all the alpha characters are converted to upper case.
- Refer to the Read_String procedure for further information.
-
- ___________________________________________________________________________
-
- Read_Word ReadTTT5
-
-
- Purpose Provides single line input of a number of type word.
-
- Decln. Read_Word(X,Y,L:byte;Prompt:strScreen;Box:byte;Var
- Wvar:word;Min,Max:word);
-
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- L is the length of the input line.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
- Box is a box code. The codes are the same as for the Box
- procedure in FastTTT5. To suppress the box, use a code of zero.
- Wvar is the word variable that will be updated with the user's
- input.
- Min, Max are the minimum and maximum acceptable values for
- automatic range checking. Set the values to 0 to accept any word
- value.
-
- The user will only be able to input number characters, and the
- value will be automatically validated to ensure it lies within
- the Min, Max range.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- See Also Read_Byte, Read_Real, Read_Int, Read_Int, Read_LongInt.
-
- Example
-
- VAR
- W:WORD;
- BEGIN
- READ_WORD(1,10,9,'ENTER THE VOLUME ===> ',1,W,0,0);
- END;
-
- ___________________________________________________________________________
-
- Read_YN ReadTTT5
-
-
- Purpose Prompts user for 'Y' or 'N' response.
-
- Decln. Read_YN(X,Y:byte;Prompt:strscreen;Box:byte;var Yes:boolean);
-
- Remarks X, Y are the coordinates of the first character of the prompt or
- the first character of the input field if the prompt is null.
- Prompt is an optional prompt. The prompt is normally displayed to
- the left of the input field. If the prompt begins with a carat
- '^' and the box border is on, the prompt is drawn in the upper
- box border. If the prompt begins with an underscore '_' and the
- box border is on, the prompt is drawn in the lower box border.
- Set the prompt to a null '' if no prompt is required.
-
- Box is a box code. The codes are the same as for the Box
- procedure in FastTTT5. To suppress the box, use a code of zero.
- Yes is the boolean variable that will be updated with the user's
- input.
-
- Only a Y or N response is accepted.
-
- The display characteristics of the input line are contained in
- the global variable RTTT.
-
- The global variable R_Char is updated with the last character
- pressed by the user. This can be checked to see how the user
- terminated input, e.g. Esc, Up Arrow, etc.
-
- Example
-
- VAR
- OK : BOOLEAN;
- BEGIN
- OK := FALSE;
- READ_YN(45,15,'DELETE THE FILE?',1,OK);
- END;
-
- ___________________________________________________________________________
-
- ReadLine ReadTTT5
-
-
- Purpose Provides single line input facility with full editing.
-
- Decln. ReadLine(X,Y,L,F,B:byte;var Txt:string;var retcode:integer);
-
- Remarks X, Y are the coordinates of the first input character.
- L is the length of the input field.
- F, B are the foreground and background display colors.
- Txt is returned with the user's input.
- Retcode is returned with a 1 if the user ESCaped or 0 for
- successful completion.
-
- This procedure is included for compatibility with version 4.0 of
- the Toolkit. Read_String now offers more features.
-
- See Also Read_String
-
- Example
-
- VAR
- THEFILE : STRING;
- CODE : INTEGER;
- BEGIN
- THEFILE := '';
- WRITEAT(10,5,WHITE,BLACK,'ENTER FILENAME ===> ');
- REPEAT
- READLINE(33,5,12,BLACK,LIGHTGRAY,THEFILE,CODE);
- UNTIL CODE = 0;
- END;
-
-
- ___________________________________________________________________________
-
- Real_Field IOTTT5
-
-
- Purpose Assigns a real variable to an input field.
-
- Decln. Real_Field(ID:byte;var RVar:real;Fmt:string;Min,Max:real);
-
- Remarks ID is the field ID number.
- Rvar is the name of the real variable that will be updated with
- the user's input.
- Fmt is the format of the input field. Pass a null string '' for
- the default.
- Min, Max are the minimum and maximum values for range check. Set
- to 0 to accept any real value.
-
- The field must be declared with Add_Field prior to calling this
- procedure.
-
- See Also Add_Field, Word_Field, Byte_Field, LongInt_Field, Integer_Field,
- Date_Field, String_Field
-
- Example
-
- VAR
- PRICE, DISCOUNT:REAL;
- BEGIN
- PRICE := 49.99;
- DISCOUNT := 9.5;
- REAL_FIELD(3, PRICE, '', 0,79.99);
- REAL_FIELD(4, DISCOUNT, '', 0,50);
- END;
-
- ___________________________________________________________________________
-
- Real_to_SciStr StrnTTT5
-
-
- Purpose Converts a real to a string using scientific notation.
-
- Decln. Real_to_SciStr(Number:real;D:byte):string;
-
- Returns String
-
- Remarks Number is the real value to be converted.
- D is the number of decimal places.
-
- See Also Real_to_Str
-
- Example
-
- BEGIN
- FWRITELN(REAL_TO_SCISTR(3.54609,2));
- END;
-
-
- ___________________________________________________________________________
-
- Real_to_Str StrnTTT5
-
-
- Purpose Converts a real number to a string.
-
- Decln. Real_to_Str(Number:real;D:byte):string;
-
- Returns String
-
- Remarks Number is the real to be converted.
-
- D is the number of decimal places. If D is set to Floating (a
- constant in the Toolkit), then the actual number of significant
- decimal places will be used.
-
- See Also Real_to_SciStr, Str_to_Real
-
- Example
-
- VAR
- TTT : STRING;
- BEGIN
- TTT := REAL_TO_STR(12345.789990,2);
- END;
-
- The variable TTT is assigned the value "12345.79".
-
- ___________________________________________________________________________
-
- Replicate FastTTT5
-
-
- Purpose Constructs a string of repeated characters.
-
- Decln. Replicate(N:byte; Ch:char):string;
-
- Returns String
-
- Remarks N is the length of the returned string.
- Ch is the character to repeat.
-
- This procedure uses memory moves and is much faster than a for
- loop.
-
- Example
-
- BEGIN
- FWRITE(REPLICATE(80,'*'));
- END;
-
- A line of 80 asterisks is written to the display.
-
-
- ___________________________________________________________________________
-
- Reset_Printer MiscTTT5
-
-
- Purpose Clears a printer back to the default settings.
-
- Decln. Reset_Printer;
-
- Remarks This procedure uses a unique technique that will reset most
- contemporary PC printers.
-
- Example
-
- BEGIN
- RESET_PRINTER;
- END;
-
- ___________________________________________________________________________
-
- Reset_StartUp_Mode WinTTT5
-
-
- Purpose Resets the display mode and cursor style to the state they were
- in when the program started.
-
- Decln. Reset_StartUp_Mode;
-
- Remarks It is good practice to call this procedure at the end of a
- program. The user will get the same cursor shape and screen mode
- that he/she was using before he/she ran the program.
-
- Example
-
- BEGIN
- RESET_STARTUP_MODE;
- HALT;
- END;
-
- ________________________________________________________
-
- RestoreScreen WinTTT5
-
-
- Purpose Restores a virtual/saved screen to the visible display.
-
- Decln. RestoreScreen(Page:byte);
-
- Remarks Page is the saved/virtual screen number of the stored image.
-
- The screen can either be a saved screen created with SaveScreen
- or a virtual screen created with CreateScreen.
-
- See Also PartRestoreScreen, PartSlideRestoreScreen, SlideRestoreScreen
-
-
- Example
-
- BEGIN
- SAVESCREEN(3);
- ....
- .. {SCREEN MODIFYING PROCEDURES}
- ....
- RESTORESCREEN(3);
- DISPOSESCREEN(3);
- END;
-
- The screen is saved to page 3, and some other procedures modify the
- display. The saved screen is then restored and the saved image is disposed.
-
- ___________________________________________________________________________
-
- RightShift_Pressed KeyTTT5
-
-
- Purpose Determines whether the Right shift key is being depressed.
-
- Decln. RightShift_Pressed:boolean;
-
- Returns Boolean
-
- Remarks Returns true if the right shift key is being depressed.
-
- See Also LeftShift_Pressed, Shift_Pressed
-
- Example
-
- BEGIN
- IF RIGHTSHIFT_PRESSED THEN
- WRITEAT(80,25,YELLOW,BLACK,CHR(24));
- END;
-
- ___________________________________________________________________________
-
- Rmwin WinTTT5
-
-
- Purpose Removes a window and restores the original screen contents.
-
- Decln. Rmwin;
-
- Remarks The RmWin procedure removes the last displayed window. Successive
- RmWin statements will remove the windows displayed earlier. If
- RmWin is called when there are no windows, no action is taken.
-
- The windows are always removed in reverse order, e.g. you cannot
- create three windows in succession and then try to remove the
- second window without first removing the third one.
-
- See Also MkWin
-
-
- Example
-
- VAR
- CH : CHAR;
- BEGIN
- MKWIN(25,20,65,25,WHITE,RED,1);
- WRITEBETWEEN(25,65,23,WHITE,RED,'END THE PROGRAM?');
- CH := GETKEY;
- IF UPCASE(CH) = 'Y' THEN
- HALT(0)
- ELSE
- RMWIN;
- END;
-
- The above program paints a red window with a white single line border on
- the last five lines of the screen and displays a message in the center of
- the box. If the user responds Y, the program terminates, otherwise the
- window is removed and the program continues.
-
- ___________________________________________________________________________
-
- SaveScreen WinTTT5
-
-
- Purpose Saves the current display image.
-
- Decln. SaveScreen(Page:byte);
-
- Remarks Page is the number that the saved screen will be referenced by.
- The number must be in the range 1..Max_Screens. If a screen is
- already saved to that page, it will be overwritten. Up to
- Max_Screens screens can be saved for subsequent restoration.
-
- The Toolkit accommodates text screens of 25, 43 and 50 lines,
- i.e. the screen can be saved even if the display is in condensed
- mode.
-
- The cursor size and location is also saved with the saved image.
- The screen image can be restored with the RestoreScreen
- procedure.
-
- See Also CreateScreen, RestoreScreen, SlideRestoreScreen,
- PartSlideRestoreScreen, DisposeScreen
-
- Example
-
- BEGIN
- SAVESCREEN(6);
- ....
- {SOME STATEMENTS THAT MODIFY THE CODE}
- ....
- RESTORESCREEN(6);
- DISPOSESCREEN(6);
- END;
-
-
- ___________________________________________________________________________
-
- ScrollOn KeyTTT5
-
-
- Purpose Indicates whether the Scroll Lock key is on.
-
- Decln. ScrollOn:boolean;
-
- Returns Boolean
-
- Remarks Returns true if the Scroll Lock key is "illuminated".
-
- See Also CapsOn, NumOn, Set_Scroll
-
- Example
-
- BEGIN
- IF SCROLLON THEN
- WRITEAT(70,1,WHITE,BLACK,'SCR')
- ELSE
- WRITEAT(70,1,WHITE,BLACK,' ')
- END;
- ___________________________________________________________________________
-
- Scroll WinTTT5
-
-
- Purpose Scrolls text on the screen in any of the four directions.
-
- Decln. Scroll(Way:direction;X1,Y1,X2,Y2:byte);
-
- Remarks Way is the direction to scroll the text. The valid directions are
- Up, Down, Left and Right.
- X1, Y1 are the coordinates of the top left corner of the region
- to be scrolled.
- X2, Y2 are the coordinates of the lower right corner of the
- region to be scrolled.
-
- One line or column of text is removed, and a new blank line is
- inserted.
-
- See Also MoveScreenBlock, CopyScreenBlock
-
- Example
-
- BEGIN
- SCROLL(UP,1,1,40,25);
- END;
-
- The left side of the display screen is scrolled up one line. The top line
- of the text disappears, and a new blank line is added at the bottom of the
- screen.
-
-
- ___________________________________________________________________________
-
- Set25Lines WinTTT5
-
-
- Purpose Sets the screen into the normal 25 line textmode display.
-
- Decln. Set25Lines;
-
- Remarks Use this procedure to switch from a condensed line display (only
- available on systems equipped with EGA/VGA displays) to a 25 line
- display.
-
- The top 25 lines of the screen will remain on display.
-
- A global variable DisplayLines is automatically updated with the
- current number of display lines.
-
- See Also SetCondensedLines
-
- Example
-
- BEGIN
- IF DISPLAYLINES <> 25 THEN
- SET25LINES.
- END;
-
- ___________________________________________________________________________
-
- SetCondensedLines WinTTT5
-
-
- Purpose Sets the text display into 43/50 line mode on EGA/VGA systems.
-
- Decln. SetCondensedLines;
-
- Remarks Systems equipped with EGA/VGA displays can support the display of
- up to 43 or 50 lines of text. This procedure switches the display
- into the condensed mode.
-
- If the procedure is called on non EGA/VGA equipment, W_Error is
- set to 12, but it is a non-fatal error. The screen simply remains
- in 25 line mode.
-
- A global variable DisplayLines is automatically updated with the
- current number of display lines.
-
- See Also Set25Lines
-
- Example
-
- BEGIN
- IF EGAVGASYSTEM AND (DISPLAYLINES = 25) THEN
- SETCONDENSEDLINES.
- END;
-
-
- ___________________________________________________________________________
-
- Set_Caps WinTTT5
-
-
- Purpose Forces the Caps Lock key on or off.
-
- Decln. Set_Caps(On:Boolean);
-
- Remarks On is a boolean to indicate if the Caps lock should be set to on,
- i.e. pass true to set it on and false to set it off.
-
- This procedure will only function on IBM (Compaq!) machines and
- 100% compatibles. Clone machines that have cheap keyboards or
- non-standard BIOS will not properly illuminate the Caps Lock key
- - some clones use a mechanical trigger to change the Caps Lock
- light and do not detect a software change.
-
- See Also CapsOn, Set_Num, Set_Scroll
-
- Example
-
- BEGIN
- IF CAPSON THEN
- BEGIN
- FWRITE('TURNING OFF THE CAPS LOCK KEY');
- SET_CAPS(FALSE);
- END;
- END;
-
- ___________________________________________________________________________
-
- Set_Default_Rules IOTTT5
-
-
- Purpose Changes the default display rules for input fields, e.g.
- rightjustified, suppresszero, etc.
-
- Decln. Set_Default_Rules(Rules:word);
-
- Remarks Rules is a word that indicates the display characteristics of the
- input fields. All subsequent fields created with Add_Field will
- be initialized with these rules.
-
- There are 5 different field Rules:
- ALLOWNULL
- SUPPRESSZERO
- RIGHTJUSTIFY
- ERASEDEFAULT
- JUMPIFFULL
- The desired attributes are summed to give the combined field
- Rules.
-
-
- See Also Field_Rules, Add_Field
-
-
- Example
-
- BEGIN
- SET_DEFAULT_RULES(ALLOWNULL+SUPPRESSZERO);
- END;
-
- ___________________________________________________________________________
-
- Set_Mouse_Cursor_Style KeyTTT5
-
-
- Purpose Changes the appearance of the mouse cursor.
-
- Decln. Set_Mouse_Cursor_Style(ordChar:byte);
-
- Remarks OrdChar is the ASCII code for the desired character.
-
- In textmode, the shape of the mouse cursor can be any of the
- displayable ASCII characters.
-
- The default cursor is a small rectangle. Once the cursor style
- has been modified, it will assume the new style until the mouse
- is re-installed (usually from a reboot), or until this procedure
- changes it again.
-
- See Also Show_Mouse_Cursor
-
- Example
-
- BEGIN
- SET_MOUSE_CURSOR_STYLE(29);
- END;
-
- ___________________________________________________________________________
-
- Set_Num WinTTT5
-
-
- Purpose Forces the Num Lock key on or off.
-
- Decln. Set_Num(On:Boolean);
-
- Remarks On is a boolean to indicate if the Num lock should be set to on,
- i.e. true to set it on and false to set it off.
-
- This procedure will only function on IBM machines and 100%
- compatibles. Clone machines that have cheap keyboards or non-
- standard BIOS will not properly illuminate the Num Lock key -
- some clones use a mechanical trigger to change the Num Lock light
- and do not detect a software change.
-
- See Also NumOn, Set_Caps, Set_Scroll
-
- Example
-
-
- BEGIN
- IF NUMON THEN
- BEGIN
- FWRITE('TURNING OFF THE NUM LOCK KEY');
- SET_NUM(FALSE);
- END;
- END;
-
- ___________________________________________________________________________
-
- Set_Scroll WinTTT5
-
-
- Purpose Forces the Scroll Lock key on or off.
-
- Decln. Set_Scroll(On:Boolean);
-
- Remarks On is a boolean to indicate if the Scroll lock should be set to
- on, i.e. true to set it on and false to set it off.
-
- This procedure will only function on IBM machines and 100%
- compatibles. Clone machines that have cheap keyboards or non-
- standard BIOS will not properly illuminate the Scroll Lock key -
- some clones use a mechanical trigger to change the Num Lock light
- and do not detect a software change.
-
- See Also ScrollOn, Set_Caps, Set_Num
-
- Example
-
- BEGIN
- IF NOT SCROLLON THEN
- BEGIN
- FWRITE('TURNING ON THE SCROLL LOCK KEY');
- SET_SCROLL(TRUE);
- END;
- END;
-
- ___________________________________________________________________________
-
- Shift_Pressed KeyTTT5
-
-
- Purpose Determines if either the Left or Right shift key is being
- depressed.
-
- Decln. Shift_Pressed:boolean;
-
- Returns Boolean
-
- Remarks Returns true if the left shift key is being depressed.
-
- See Also RightShift_Pressed, LeftShift_Pressed
-
-
- Example
-
- BEGIN
- IF SHIFT_PRESSED THEN
- WRITEAT(40,25,YELLOW,BLACK,CHR(24));
- END;
-
- ___________________________________________________________________________
-
- Show_List ListTTT5
-
-
- Purpose Displays a list of choices in a scrollable window.
-
- Decln. Show_List(var StrArray;Strlength:byte;TotalPicks:byte);
-
- Remarks StrArray is a variable that is defined as an array of strings.
- This array contains a list of all the topics that the user can
- select.
- Strlength is the maximum string length of each element of the
- array.
- TotalPicks is the total number of elements in the array.
-
- The global byte variable L_Pick is updated with the chosen topic.
- If multiple selections are allowed, the boolean array L_Picks
- indicates the user's selections.
-
- The LTTT variable controls the display characteristics of the
- list.
-
- Example
-
- VAR
- NAME_ARRAY : ARRAY[1..5] OF STRING[20];
- BEGIN
- NAME_ARRAY[1] := 'ROBERT';
- NAME_ARRAY[2] := 'DAVID';
- NAME_ARRAY[3] := 'MICHAEL';
- NAME_ARRAY[4] := 'JONATHAN';
- NAME_ARRAY[5] := 'DESMOND';
- SHOW_LIST(NAME_ARRAY,20,5);
- END;
-
- ___________________________________________________________________________
-
- Show_Mouse_Cursor KeyTTT5
-
-
- Purpose Makes the mouse cursor visible.
-
- Decln. Show_Mouse_Cursor;
-
- Remarks The mouse cursor is not normally displayed. Use this procedure to
- display the mouse and Hide_Mouse_Cursor to turn it off.
-
-
- See Also Hide_Mouse_Cursor
-
- Example
-
- BEGIN
- SHOW_MOUSE_CURSOR;
- END;
-
- ___________________________________________________________________________
-
- Show_Nest NestTTT5
-
-
- Purpose Displays a NEST menu.
-
- Decln. Show_Nest(var menu:Nest_menu);
-
- Remarks Menu is the name of the menu variable that defines all the
- topics.
-
- This is the main procedure in the NestTTT5 unit.
-
- See Also Initialize_Menu
-
- Example
-
- VAR
- MY_MENU : NEST_MENU;
- BEGIN
- INITIALIZE_MENU(MY_MENU);
- ......
- ... {MENU BUILDING PROCS ADD_TOPIC, ASSIGN_DESPATCHER ETC}
- ......
- SHOW_NEST(MY_MENU);
- END;
-
- ___________________________________________________________________________
-
- SizeCursor WinTTT5
-
-
- Purpose Sets the cursor to any acceptable size.
-
- Decln. SizeCursor(Top,Bot:byte);
-
- Remarks Top, Bot are the top and bottom scan lines of the cursor.
-
- The top scan line is 0. The bottom scan line is 12 on monochrome
- systems and 7 on color systems.
-
- See Also OffCursor, OnCursor, HalfCursor, FullCursor
-
- Example
-
- BEGIN
-
- IF COLORSCREEN
- SIZECURSOR(0,3)
- ELSE
- SIZECURSOR(0,6);
- END;
-
- ___________________________________________________________________________
-
- SlideRestoreScreen WinTTT5
-
-
- Purpose Restores a previously saved screen. This procedure is the
- functional equivalent of RestoreScreen except that the text
- s.l..i...d....e.....s onto the screen.
-
- Decln. SlideRestoreScreen(Page:byte; Way:direction);
-
- Remarks Page is the screen number of the saved/virtual screen.
- Way is the direction to slide the screen. The valid directions
- are Up, Down, Left, Right.
-
- The cursor is returned to the exact positon it was in when the
- screen was saved.
-
- If the saved screen will no longer be needed, free up the memory
- with DisposeScreen.
-
- See Also SaveScreen, CreateScreen, RestoreScreen, PartSlideRestoreScreen
-
- Example
-
- BEGIN
- SAVESCREEN(6);
- ....
- {SOME STATEMENTS THAT MODIFY THE CODE}
- ....
- SLIDERESTORESCREEN(6,DOWN);
- DISPOSESCREEN(6);
- END;
-
- ___________________________________________________________________________
-
- Squeeze StrnTTT5
-
-
- Purpose Truncates a string and inserts a symbol in the string.
-
- Decln. Squeeze(LR:Char;Str:string;width:byte):string;
-
- Returns String
-
- Remarks LR is a character to indicate whether the left or the right of
- the string should be retained. 'L' for left and 'R' for right.
- Str is the source string.
- Width is the length of the returned string.
-
-
- An arrow is forced into the first or last character position to
- indicate that the string has been truncated.
-
- See Also Last, First
-
- Example
-
- VAR
- TTT : STRING;
- BEGIN
- TTT := SQUEEZE('R','C:\TURBO\WILLY.PAS',14);
- END;
-
- The string TTT will be assigned the value "->rbo\willy.pas".
-
- ___________________________________________________________________________
-
- String_Field IOTTT5
-
-
- Purpose Assigns a string variable to an input field.
-
- Decln. String_Field(ID:byte;var Svar:string;Fmt:string);
-
- Remarks ID is the field ID number.
- Save is the name of the string variable that will be updated with
- the user's input.
- Fmt is the format of the Input string. The following characters
- denote input characters:
-
- # allow 0..9,'.',,'-', and 'e' for scientific.
- @ only letters of the alphabet and punctuation.
- * any damn character the user can find.
-
- ! all letters converted to upper case.
-
- For example, a format for a telephone number might be "(###) ###-
- ####".
-
- The length of the field is dictated by the Fmt string.
-
- See Also Add_Field, Byte_Field, Word_Field, Integer_Field, LongInt_Field,
- Real_Field, Date_Field
-
- Example
-
- VAR
- NAME, TEL : STRING;
- ZIP : LONGINT;
- BEGIN
- NAME := '';
- TEL := '';
- ZIP := 0;
- STRING_FIELD(1,NAME,'!!!!!!!!!!!!!!!!!!!!');
-
- STRING_FIELD(2,TEL,'(###) ###-####');
- LONGINT_FIELD(3,ZIP,'',0,99999);
- END;
-
- The Name field will force all the user's input to upper case. The Telephone
- field will only accept numbers and the cursor will jump between the #
- characters (although they won't show as #'s on the display!!). The Zip
- field will accept any number in the range 0 to 99999.
-
- ___________________________________________________________________________
-
- Strip StrnTTT5
-
-
- Purpose Removes a character from a string.
-
- Decln. Strip(L,C:char;Str:string):string;
-
- Returns String
-
- Remarks L is a character indicating which part of the string to strip:
- 'L' strip all leading characters
- 'R' strip all trailing characters
- 'B' strip both leading and trailing characters
- 'A' strip all occurrences of the character
- C is the character to strip
- Str is the source string
-
- Example
-
- VAR
- TTT1, TTT2, TTT3, TTT4 : STRING;
- BEGIN
- TTT1 := STRIP('L',' ',' THIS IS NEAT ');
- TTT2 := STRIP('R',' ',' THIS IS NEAT ');
- TTT3 := STRIP('B',' ',' THIS IS NEAT ');
- TTT4 := STRIP('A',' ',' THIS IS NEAT ');
- END;
-
- The strings will be assigned the following characters:
- TTT1 "This is neat "
- TTT2 " This is neat"
- TTT3 "This is neat"
- TTT4 "Thisisneat"
-
- ___________________________________________________________________________
-
- Str_to_Int StrnTTT5
-
-
- Purpose Converts a string to an integer.
-
- Decln. Str_to_Int(Str:string):integer;
-
- Returns Integer
-
-
- Remarks Str is the source string.
-
- If the string is null or cannot be successfully converted to an
- integer, the function returns a zero.
-
- See Also Int_to_Str, Str_to_Real, Str_to_Long
-
- Example
-
- VAR
- I : INTEGER;
- BEGIN
- I := STR_TO_INT('165');
- END;
-
- The variable I is assigned the value 165.
-
- ___________________________________________________________________________
-
- Str_to_Long StrnTTT5
-
-
- Purpose Converts a string to a longint.
-
- Decln. Str_to_Long(Str:string):longint;
-
- Returns Longint
-
- Remarks Str is the source string.
-
- If the string is null or cannot be successfully converted to a
- longint, the function returns a zero.
-
- See Also Int_to_Str, Str_to_Real, Str_to_Int
-
- Example
-
- VAR
- L : LONGINT;
- BEGIN
- L := STR_TO_LONG('99165');
- END;
-
- The variable L is assigned the value 99165.
-
- ___________________________________________________________________________
-
- Str_to_Real StrnTTT5
-
-
- Purpose Converts a string to a real.
-
- Decln. Str_to_Real(Str:string):real;
-
-
- Returns Real
-
- Remarks Str is the source string.
-
- If the string is null or cannot be successfully converted to a
- real, the function returns a zero.
-
- See Also Int_to_Str, Str_to_Long, Str_to_Int
-
- Example
-
- VAR
- R : REAL;
- BEGIN
- R := STR_TO_REAL('59.99');
- END;
-
- The variable R is assigned the value 59.99.
-
- ___________________________________________________________________________
-
- TempMessage WinTTT5
-
-
- Purpose Displays a message on the screen, waits for a keypress (or mouse
- activity), and then restores the original screen contents.
-
- Decln. TempMessage(X,Y,F,B:byte;Str:StrScreen);
-
- Remarks X, Y are the coordinates of the first character of the message.
- F, B are the foreground and background display colors.
- Str is the message to display.
-
- See Also TempMessageCh, TempMessageBox, TempMessageBoxCh
-
- Example
-
- BEGIN
- TEMPMESSAGE(1,1,YELLOW,RED,'YOU CANNOT REFORMAT THE FILESERVER');
- END;
-
- ___________________________________________________________________________
-
- TempMessageBox WinTTT5
-
-
- Purpose Displays a temporary message on the screen inside a box.
-
- Decln. TempMessageBox(X,Y,F,B,BoxType:byte;Str:StrScreen);
-
- Remarks X, Y are the coordinates of the first character of the message.
- F, B are the foreground and background display colors.
- BoxType is the box border code. Use the same codes as for Box in
- FastTTT5.
- Str is the message to display.
-
-
- See Also TempMessageCh, TempMessage, TempMessageBoxCh
-
- Example
-
- BEGIN
- TEMPMESSAGEBOX(10,13,YELLOW,RED,2,'REMOVE THE DISKETTE FROM DRIVE A');
- END;
-
- ___________________________________________________________________________
-
- TempMessageBoxCh WinTTT5
-
-
- Purpose Displays a temporary message in a box screen and returns the
- character pressed by the user. This procedure is a combination of
- TempMessageCh and TempMessageBox.
-
- Decln. TempMessageBoxCh(X,Y,F,B,Boxtype:byte;Str:StrScreen;var Ch:char);
-
- Remarks X, Y are the coordinates of the first character of the message.
- F, B are the foreground and background display colors.
- BoxType is the box border code. Use the same codes as for Box in
- FastTTT5.
- Str is the message to display.
- Ch is a character variable that will be updated with the
- character pressed by the user.
-
- See Also TempMessage, TempMessageBox, TempMessageBoxCh
-
- Example
-
- VAR
- CH : CHAR;
- BEGIN
- TEMPMESSAGEBOXCH(1,1,YELLOW,RED,1,'REFORMAT THE FILESERVER? (Y/N)',CH);
- END;
-
- ___________________________________________________________________________
-
- TempMessageCh WinTTT5
-
-
- Purpose Displays a temporary message on the screen. This procedure is the
- functional equivalent of the TempMessage procedure, except that
- it identifies the character pressed by the user.
-
- Decln. TempMessageCh(X,Y,F,B:byte;Str:StrScreen;var Ch:char);
-
- Remarks X, Y are the coordinates of the first character of the message.
- F, B are the foreground and background display colors.
- Str is the message to display.
- Ch is a character variable that will be updated with the
- character the user pressed.
-
-
- See Also TempMessage, TempMessageBox, TempMessageBoxCh
-
- Example
-
- VAR
- CH : CHAR;
- BEGIN
- TEMPMESSAGECH(1,1,YELLOW,RED,'REFORMAT THE FILESERVER? (Y/N)',CH);
- IF UPCASE(CH) = 'Y' THEN
- TEMPMESSAGE(1,1,WHITE,BLUE,'DO I LOOK STUPID?');
- END;
-
- ___________________________________________________________________________
-
- Time MiscTTT5
-
-
- Purpose Returns the system time nicely formatted.
-
- Decln. Time:string;
-
- Returns String
-
- Remarks The format of the returned string is hour:min:sec a.m.
-
- The same format is used in the Clock procedure.
-
- See Also Clock, Date
-
- Example
-
- BEGIN
- FWRITELN(TIME);
- END;
-
- ___________________________________________________________________________
-
- Today_In_Julian MiscTTT5
-
-
- Purpose Returns the current system date in Julian form.
-
- Decln. Today_in_Julian:dates;
-
- Returns Dates
-
- See Also Date_To_Julian, Julian_to_Date
-
- Example
-
- VAR
- NOW : DATES;
- BEGIN
- NOW := TODAY_IN_JULIAN;
- END;
-
-
- ___________________________________________________________________________
-
- Upper StrnTTT5
-
-
- Purpose Converts a string to upper case.
-
- Decln. Upper(Str:string):string;
-
- Returns String
-
- Remarks Str is the source string.
-
- Only the upper case alphabet A to Z is affected.
-
- See Also Lower, Proper
-
- Example
-
- VAR
- TTT : STRING
- BEGIN
- TTT := UPPER('TECHNOJOCK SOFTWARE');
- END;
-
- The variable TTT is assigned the value "TECHNOJOCK SOFTWARE".
-
- ___________________________________________________________________________
-
- Valid_Date MiscTTT5
-
-
- Purpose Validates a date string.
-
- Decln. Valid_date(Indate:string;format:byte):boolean;
-
- Returns Boolean
-
- Remarks Indate is the string to be validated.
- Format is the format code to indicate the format of the string.
- The valid date formats are declared as constants in the MiscTTT5
- unit:
- DDMMYY
- MMDDYY
- MMYY
- MMYYYY
- DDMMYYYY
- MMDDYYYY
-
- The procedure checks that the month is valid (i.e. in the range
- 1..12) and that the day is within the valid range for the month.
- Leap years are accounted for.
-
- See Also Date_to_Julian
-
-
- Example
-
- VAR
- OK : BOOLEAN;
- BEGIN
- OK := VALID_DATE('02/31/90',MMDDYY);
- END;
-
- The variable OK is assigned the value FALSE because there are not 31 days
- in February 1990.
-
- ___________________________________________________________________________
-
- VertLine FastTTT5
-
-
- Purpose Draws a vertical line on the screen.
-
- Decln. VertLine(X,Y1,Y2,F,B,LineType:integer);
-
- Remarks X is the X coordinate of the line.
- Y1, Y2 are the upper and lower Y coordinates of the line.
- F, B are the foreground and background display colors.
- LineType is a code to indicate the linestyle - 1 for a single
- line and 2 for a double line.
-
- See Also HorizLine, Box
-
- Example
-
- BEGIN
- VERTLINE(40,1,25,WHITE,BLACK,2);
- END;
-
- A double white line is drawn down the center of the screen.
-
- ___________________________________________________________________________
-
- WordCnt StrnTTT5
-
-
- Purpose Counts the number of words in a string.
-
- Decln. WordCnt(Str:string):string;
-
- Returns String
-
- Remarks Str is the source string.
-
- See Also ExtractWords, PosWord
-
- Example
-
- VAR
- B : BYTE;
-
- BEGIN
- B := WORDCNT('WHAT A SUPERB PRODUCT, REGARDS PHILLIPE');
- END;
-
- The variable B is assigned the value 6.
-
- ___________________________________________________________________________
-
- Word_Field IOTTT5
-
-
- Purpose Assigns a word variable to an input field.
-
- Decln. Word_Field(ID:byte;var WVar:word;Fmt:Lstring;Min,Max:word);
-
- Remarks ID is the field ID number.
- Wvar is the name of the word variable that will be updated with
- the user's input.
- Fmt is the format of the input field. Pass a null string '' for
- the default.
- Min, Max are the minimum and maximum values for range check. Set
- to 0 to accept any word value.
-
- The field must be declared with Add_Field prior to calling this
- procedure.
-
- See Also Add_Field, Byte_Field, Integer_Field, LongInt_Field, Real_Field,
- Date_Field, String_Field
-
- Example
-
- BEGIN
- ACTIVATE_TABLE(3);
- WORD_FIELD(1, AREA, '', 0,120);
- WORD_FIELD(2, VOLUME, '', 1,31);
- END;
-
- ___________________________________________________________________________
-
- WriteAT FastTTT5
-
-
- Purpose Writes to the screen el quicko.
-
- Decln. WriteAT(X,Y,F,B:byte;Str:StrScreen);
-
- Remarks X, Y are the coordinates of the first character.
- F, B are the foreground and background display colors.
- Str is the string to be written.
-
- See Also Fastwrite, Plainwrite, Colwrite
-
- Example
-
- CONST
-
- HEADING = 'TOOLKIT';
- VAR
- NAME : STRING;
- BEGIN
- NAME := "BOBBO";
- WRITEAT(1,1,WHITE,BLACK,'WELCOME');
- WRITEAT(10,10,CYAN,RED,HEADING');
- WRITEAT(40,3,LIGHTCYAN,LIGHTGRAY,'TO'+'THE SHOW');
- WRITEAT(70,20,GREEN,BLACK,NAME);
- END;
-
- The example writes various strings to the screen and illustrates that
- strings, constants, variables and concatenated strings are valid.
-
- ___________________________________________________________________________
-
- WriteBetween FastTTT5
-
-
- Purpose Writes text centered between two points.
-
- Decln. WriteBetween(X1,X2,Y,F,B:byte;Str:strscreen);
-
- Remarks X1, X2 are the two X coordinates that the string will be centered
- between.
- Y is the Y coordinate.
- F, B are the foreground and background display colors.
- Str is the display string.
-
- See Also WriteAt, WriteCenter
-
- Example
-
- BEGIN
- WRITEBETWEEN(1,40,15,WHITE,BLACK,'LEFT SIDE');
- WRITEBETWEEN(41,80,15,WHITE,BLACK,'RIGHT SIDE');
- END;
-
- ___________________________________________________________________________
-
- WriteCenter FastTTT5
-
-
- Purpose Writes text on the center of a line.
-
- Decln. WriteCenter(Y,F,B:byte;Str:string);
-
- Remarks Y is the Y coordinate or line number.
- F, B are the foreground and background display colors.
- Str is the display string.
-
- See Also WriteBetween, WriteAt
-
- Example
-
-
- BEGIN
- WRITECENTER(1,YELLOW,BLACK,'MAJOR HEADING');
- END;
-
- ___________________________________________________________________________
-
- WriteVert FastTTT5
-
-
- Purpose Writes text in a vertical column.
-
- Decln. WriteVert(X,Y,F,B:byte;Str:string);
-
- Remarks X, Y are the coordinates of the top character.
- F, B are the foreground and background display colors.
- Str is the display string.
-
- See Also WriteAt
-
- Example
-
- BEGIN
- WRITEVERT(20,5,WHITE,BLUE,'Y AXIS');
- END;
-