home *** CD-ROM | disk | FTP | other *** search
-
- The Turbo Pascal Reference
- by
- Ed Mitchell
-
- A Freeware Book
-
- First edition, Nov 1992. (C) Copyright 1992 by Ed Mitchell, author of the
- Borland Pascal Developer's Guide, Que Corporation, 1992.
-
-
-
- Introduction
-
- Welcome to the electronic edition of the Turbo Pascal Reference. This
- reference provides approximately 400 single-spaced pages of reference
- information about the Turbo Pascal IDE, the Turbo Pascal language, all of the
- System and Graph libraries, plus a comprehensive 150+ page reference to Turbo
- Vision.
-
- This book is intended to be used as a reference - not as a tutorial. If
- you have no programming experience whatsoever, you should consult a Turbo
- Pascal programming tutorial first. If you have a minor amount of programming
- experience, you will find a complete discussion of Turbo Pascal in Chapter 3,
- "The Turbo Pascal Language".
-
- The Turbo Vision Reference section, Chapters 6 through 10, is unique in
- that it provides many examples and highlights the most commonly used features.
- If you have programmed in Turbo Vision you already know that you do not need to
- use all of the methods described for each object type. Unfortunately, it is
- difficult, using Borland's documentation, to discern those that are needed and
- those that you can safely ignore. This means that learning Turbo Vision using
- the Borland documentation is much more difficult than it needs to be. And that
- is why you will want to use the reference information I've provided in this
- freeware book.
-
- If you have never programmed in Turbo Vision, I recommend that you consult
- Chapter 11, "Turbo Vision Tutorial", continuing though Chapter 16, of the
- Borland Pascal Developer's Guide, published by Que Books.
-
- This Turbo Pascal Reference, a 400 page book, is available to you, for
- free. Subject to the copyright and distribution rights described below, you
- are free to copy this book and give it to others.
-
-
-
- Why am I giving this book away?
-
- When I wrote Borland Pascal Developer's Guide (Que Books, 1992), my
- publisher asked for a comprehensive book that would cover every feature of
- Turbo Pascal. Obviously, such a volume would take a lot more than could fit
- within the approximately 1,000 page limitation of a printed book.
-
- Because there is not room in a single volume to hold all of this material,
- I am giving away the extra 400 pages that it takes to flesh out the entire
- topic. I want you, my reader, to have access to this text, to help you in your
- development of Pascal applications. There is a great deal of valuable insight,
- tutorials and sample code within this text and I very much want these
- techniques to get into your hands and to be used by you.
-
- Please note that while the material presented here complements the Borland
- Pascal Developer's Guide, this electronic book is not in any way affiliated
- with the Que Corporation.
-
- This electronic book is completely free. However, if you find this
- information of value to you, I would greatly appreciate your purchase of
- Borland Pascal Developer's Guide, published by Que Corporation, 1992. (Or,
- alternately, my Secrets of the Borland C++ Masters (Sams Books, 1992) or Using
- Microsoft C/C++ (Que, 1992)).
-
- This freeware book does not duplicate the material in the Borland Pascal
- Developer's Guide. The Borland Pascal Developer's Guide and the Turbo Pascal
- Reference are completely independent of one another - yet strongly complement
- each other - so it is to your advantage to have access to both. If your book
- store does not stock Borland Pascal Developer's Guide, you can ask your
- retailer to order them directly from Que Corporation, or call Que at
- 317-573-2500 or 1-800-428-5331.
-
- Because the material in the Turbo Pascal Reference was originally intended
- as extra chapters in the Borland Pascal Developer's Guide, you will find cross
- references to the Developer's Guide. For example, in the reference section on
- the Turbo Vision TCollection object, I will point you to chapter 14,
- "Collections" in the Borland Pascal Developer's Guide for additional examples.
-
-
-
- About the Author
-
- I am the author of Borland Pascal Developer's Guide (Que Books, 1992),
- coauthor of Using Microsoft C/C++ 7.0 (Que Books, 1992), Secrets of the Borland
- C++ Masters (Sams Books, 1992), and author of, under a pseudonym, Software
- Construction Set for the IBM PC (Hayden Books, 1984).
-
- As a past employee of Software Publishing Corporation, I was the project
- manager of the best selling PFS First Choice integrated software product, and
- coauthor of the original PFS Write which was one of the first word processors
- for the IBM PC (and was also a best seller). Both PFS Write and PFS First
- Choice were written in Pascal. In the case of First Choice, the source ran to
- over 125,000 lines of Pascal code. I've been writing Pascal code since my
- first use of an LSI-II Terak Microcomputer in 1978.
-
-
-
- How to Contact the Author
-
- You can contact me via electronic mail to Compuserve 73317,2513 or via the
- Internet to 73317.2513@compuserve.com. I promise to read all mail that I
- receive; realistically I cannot promise to respond to all enquiries. You may
- also reach me at EdMitch@aol.com.
-
-
- Copyright Notice
-
- This text is copyrighted, which means that I retain ownership and control
- over the right to make copies of this electronic book. However, I give you
- permission to copy this electronic text and give it away, free, to others,
- subject to the following rules and restrictions:
-
- 1. This electronic book may only be copied in its entirety, unless separate
- permission is received from the author.
-
- 2. Each copy of this material, whether electronic or printed, must not be
- modified by you. In particular, each copy must include this introduction, my
- copyright statement and the reference to Borland Pascal Developer's Guide (Que,
- 1992).
-
- 3. You may print out copies of this electronic text for your own use.
-
- 4. Teachers and instructors are encouraged to copy, or to print and use this
- material in their classroom; however, if material is extracted for use in a
- classroom setting, the extracted material must bear the following notice:
-
- From Turbo Pascal Reference, (C) Copyright 1992 by Ed
- Mitchell, author of Borland Pascal Developer's Guide, Que
- Corporation, 1992.
-
- 5. Bona fide shareware distributors may charge a "nominal" fee for the costs
- of duplication and distribution. By "nominal", I mean a low fee such as $5.00
- per disk.
-
- 6. You may not sell copies of the Turbo Pascal Reference in electronic,
- printed or any other form, for profit or not-for profit.
-
- 7. You may not give this material away or distribute this freeware text as a
- promotion for any other product without the express written permission of Ed
- Mitchell.
-
- 8. Turbo Pascal, Turbo Pascal for Windows, and Borland Pascal are trademarks
- of Borland International, Inc.
-
-
-
- Disclaimer: There are No Warranties
-
- The material in this electronic book has not been professionally edited.
- In particular, Turbo Pascal Reference is not produced by nor sanctioned by the
- Que Corporation. Que Corporation has no affiliation with nor responsibility
- for the content of Turbo Pascal Reference. Ed Mitchell is solely responsible
- for the content of Turbo Pascal Reference.
-
- This means that the text has NOT been reviewed by one or more copy editors
- and a technical editor, which is typical of the material that you read in a
- published book. As such, you may find typographical or grammatical errors.
- There may also be technical errors of the type that crop up during any big
- project as large as this one. If you find a problem, please notify me
- directly, via electronic mail, and I will fix the problem for a subsequent
- release of this electronic book.
-
- The text and sample programs are intended solely for educational purposes.
- While the programs are believed to reasonably accurate and functional, they
- have not been subjected to the standards of a professional software quality
- assurance department. No warranties, expressed or implied, are given. This
- material is used by you "as is". You may use the sample code in your own
- applications but you must subject the sample code to the same testing that you
- would give to your own code.
-
-
- About Borland Pascal Developer's Guide
-
- The Borland Pascal Developer's Guide is aimed at the intermediate to
- advanced Pascal programmer, although it contains an enormous amount of
- information that will be of value to those who have just learned Turbo Pascal.
- The Guide covers Turbo Pascal 6.0, Turbo Pascal 7.0, Borland Pascal, including
- the new protected-mode features, and Turbo Pascal for Windows. The book
- includes a companion disk containing all of the source code from the book, plus
- several shareware utilities. A detailed outline of the Borland Pascal
- Developer's Guide is presented after the Table of Contents for the Turbo Pascal
- Reference.
-
-
- About the Illustrations and Sample Source Code
-
- In some of the chapters you will see reference to "figures", such as
- "Figure 3.2". Above the Figure caption you will see a notation similar to:
-
- ***03tpr02.pcx***
-
- This notation means that the illustration is contained in "pcx" format
- graphics file named 03TPR02.PCX. You can read and print .pcx files using the
- Microsoft PaintBrush program that comes with Microsoft Windows. Many other
- graphics programs can also display and print these .pcx format files. All of
- the .pcx files are included in this electronic book.
-
- The text contains many program listings. Some of these are also provided
- as separate source code files to make it easy for you to use the sample code in
- your own programs. Whenever you see a listing in the text that contains "line
- numbers" on the left hand side, the topmost line of the listing will show the
- name of the file containing the source code. The sample files are included in
- this electronic book. The line numbers are for reference only; if you choose
- to type in any of the sample programs, do not type the line numbers.
-
-
-
- Turbo Pascal Reference
- ---------------------
-
- Table of Contents
- ---------------------------------------
-
- Total pages in the electronic book:
- Over 400 single spaced pages.
-
- Chapter 1
- 20 pages.
- This introduction
- Copyright information
- Table of Contents for Turbo Pascal Reference
- Table of Contents for Borland Pascal Developer's Guide
-
-
-
- Chapter 2
- The Integrated Development Environment
- 36 pages.
-
- Using the Integrated Development Environment
- When to Use the IDE?
- Starting Turbo Pascal's IDE
- Selecting Menu Items
- Editing, Saving and Compiling a Program
- Dialog Boxes
- Using the Editor
- Navigating in the Editor
- Selecting Text and Text Block Operations
- Specific Editing Commands
- The IDE Help System
- Copying Text from the Help system
- The File Menu
- File Menu/Open
- File Menu/New
- File Menu/Save functions
- File Menu/Change dir
- File Menu/Print
- File Menu/Get Info
- File Menu/DOS Shell
- File Menu/Exit
- The Search Menu
- Search Menu/Find (Ctrl-Q-F)
- Search Menu/Replace (Ctrl-A)
- Search Menu/Search Again (Ctrl-L)
- Search Menu/Go to Line Number
- Search Menu/Find Procedure
- Search Menu/Find Error (Alt-F8)
- The Run Menu
- Run Menu/Run (Alt-R)
- Run Menu/Program Reset (Ctrl-F2)
- Run Menu/Go to Cursor (F4)
- Run Menu/Trace Into (F7) and Step Over (F8)
- Run Menu/Parameters
- The Compile Menu
- Compile Menu/Compile (Alt-F9)
- Compile Menu/Make (F9)
- Compile Menu/Build
- Compile Menu/Destination
- Compile Menu/Primary File
- The Debug Menu and the Built-in Debugger
- Debug Menu/Evaluate/Modify (Ctrl-F4)
- Debug Menu/Watches
- Debug/Watches - Add Watch (Ctrl-F7)
- Debug Menu/Watches - Delete Watch
- Debug Menu/Watches - Edit Watch
- Debug Menu/Watches-Remove all Watches
- Debug Menu/Toggle Breakpoint (Ctrl-F8)
- Debug Menu/Breakpoints
- Edit Breakpoints Button
- Delete Button
- View Button
- Clear All Button
- The Options Menu
- Options Menu/Compiler
- Options Menu/Memory sizes
- Options Menu/Linker
- Options Menu/Debugger
- Options Menu/Directories
- Options Menu/Environment
- Options Menu/Environment - Preferences
- Options Menu/Environment - Editor Options
- Options Menu/Environment - Mouse
- Options Menu/Environment - Startup
- Options Menu/Environment - colors
- Options Menu/Save options
- The Window Menu
-
-
- Chapter 3
- The Turbo Pascal Language
- 104 pages.
-
- Your First Turbo Pascal Program
- Pascal Program Structure
- Pascal Data Types
- A Note on the Use of Floating Point Values
- Declaring Identifiers
- Constants
- Variables
- Arrays
- Multidimensional Arrays
- Arrays and the packed Keyword
- Enumerated Types
- Subrange Types
- Sets
- Set Relational Operators
- Set Logical Operators
- Records
- The With Statement
- Record Types
- Case-variant records
- File Types
- Typed Constants: Pre-initialized variables
- The Pointer Type
- Defining and Allocating a Pointer
- Using a Pointer
- Disposing of a Dynamic variable
- Common problems when using pointers
- The Use of Mark and Release Procedures
- Cautions concerning the use of Mark and Release
- The Use of GetMem and FreeMem procedures
- Pointers and Memory Management
- Pointer Relational Operators
- The Address-of operator @
- @ and Procedures and Functions
- @ and Procedure Value parameters
- @ and Procedure Variable parameters
- Summary of Pointer Operations
- Pointers and Complex Data Structures
- Pointers and the With Statement
- Turbo Pascal Arithmetic Operations
- Basic Arithmetic Operators
- Mixing Data Types in Expressions
- Implicit Type Conversion
- Explicit Type Conversion
- Address-of @ operator
- Comparision or Relational Operators
- Logical or Bit Level Operations
- Boolean Operations
- Short-Circuit versus Complete Evaluation
- String Operations
- Evaluation Hierarchy
- Pascal Statements
- Program Comments
- Assignment Statements: :=
- Conditional Statements: If-then-else and case
- The if-then and if-then-else statements
- The case Statement
- Looping Statements: For, While and Repeat
- For Loop
- While Loop
- Repeat Loop
- Labels and Goto
- Procedures and Functions
- Procedures
- The <Optional parameter list>
- Arrays as Parameters
- Strings as Parameters
- Records as Parameters
- Summary of Using Parameter Values and Variables
- The Procedure Body
- Forward declared procedures
- Near and Far procedure call models
- Interrupt Procedures
- Assembly language procedures: External, Inline and Asm
- Functions
- Calling a function
- Assigning a value to a function identifier
- Acceptable Function Return Values
- Recursive functions
- The effect of short-circuit evaluation on functions
- Procedures and Functions as Parameters
- Conditional Compilation
- Built-in Conditional Compilation Symbols
- Compiler Directives
- Disk File Operations
- Defining a File Identifier
- Opening a File
- Writing and Reading File Data
- Checking for File-related Errors
- Text Files
- Sequential Access Data Files
- Random Access Data Files
- Writing Pointer values to disk files
- BlockRead and BlockWrite: The Use of Untyped Files
- Specifying Different Block Sizes
- Maximum buffer size and maximum data to read or write
- Other File Operations
- Turbo Pascal Memory Limitations
-
-
-
- Chapter 4
- System Library Reference
- 89 pages.
-
-
- Chapter 5
- Graph Library Reference
- 54 pages.
-
-
-
- Chapter 6
- The Turbo Vision Reference
- 34 pages.
-
- About the Reference Section
- Naming Conventions
- Naming Conventions
- The Turbo Vision Object Hierarchy
- The Reference Section
- Contains reference information on every aspect of Turbo Vision, including
- object types, global variables, type declarations, constants, plus examples and
- an overview of commonly used features.
-
- Chapter 7, 8, 9 and 10
- The Turbo Vision Reference
- (continued)
- Chapter 7: 28 pages.
- Chapter 8: 42 pages.
- Chapter 9: 40 pages.
- Chapter 10: 37 pages.
-
-
-
-
-
- Borland Pascal Developer's Guide
- -------------------------------
-
- Table of Contents
- ---------------------------------------
-
- Chapter 1
- Introduction
-
-
- Who Should Use This Book?
- How To Use This Book
- About the Sample Programs
- About The Programming Style Used in This Book
- The Companion Diskette
- How to Contact the Author
- New Features in Borland Pascal and Turbo Pascal 7.0
- Which Compiler Should You Use?
- Using Protected-Mode
- Compiling for Protected Mode
- Issues of Programming Style
- Capitalization of Keywords
- Indenting
- Where to Indent?
- Use Blank Lines
- Types and Pointers
- Procedures and Functions
-
-
-
- Chapter 2
- Units
-
- Introduction
- Structure of a Unit
- Defining the Interface Section
- Inline Procedures and Functions
- Using Other Units Within the Interface Section
- Defining the Implementation Section
- The Unit Initialization Section
- Using a Unit in another Program
- Compiling a Unit
- Using TPUMOVER to Update TURBO.TPL
- Multiple .TPL Library Files
- Project Management: The Build and Make Options
- Circular References: When Units Use Each Other
- Sharing Declarations Between Units
- The Standard Turbo Pascal Units
- Library Units Available From Other Suppliers
- A Sample Unit
- Dynamic Link Libraries
-
-
-
- Chapter 3
- Overlays
-
- Introduction
- General Guidelines
- Overlay Example
- Description of Example Program OverDemo
- Checking OvrResult
- Combining .OVR and .EXE into a single .EXE file
- Assembly language and Overlay Calls
- Overlays and Unit Initialization Code
- Overlaying Data
- Tuning the Virtual Array Code
- Turbo Pascal Overlay Unit Reference
-
-
-
- Chapter 4
- Object-Oriented Programming
-
- Introduction
- What You Need To Learn
- The Terminology of Object-oriented Programming
- A First Look at Object Oriented Programming in Turbo Pascal
- Pointers to Objects and Dynamic Object Allocations
- Disposing of Object Pointers
- Destructor Methods
- The Power of Inheritance
- Calling the Ancestor's Init Method
- Object Types, Objects and Inheritance
- Virtual Methods
- Objects containing Virtual Methods Must Have a Constructor
- Static versus Virtual: Which Do You Choose?
- Object Types and Type Compatability
- Objects as Procedural Parameters
- Objects as Typed Constants
- Polymorphism
- Object Libraries
- Designing Object-oriented Programs
- Object-oriented Programming Reference
- Defining an object
- Deriving an object
- Object Pointers
- Constructor and Destructor Methods
- Virtual methods
- Using the Self variable
- Range Checking of Virtual Method Calls
- Glossary of Object Terminology
-
-
-
- Chapter 5
- Turbo Pascal Graphics
-
- Introduction to Turbo Pascal Graphics
- The Graph Unit and Related Files
- Sample Program
- Circles
- Graphic Text
- Viewports
- The Current Pointer
- Selecting Colors
- Choosing Colors from the Color Palette
- Selecting Interior Colors for Objects
- Charting
- The Pie Chart
- The Bar Chart
- The Line Chart
- Graphics Drivers and Font Files
- Font Files
- Linking Device Drivers and Font Files
- Converting .BGI and .CHR files into .OBJ files
- Two Approaches to Linking .BGI and .CHR Files
- Modifying Your Program to Reference the Linked .BGI and .CHR files
-
-
-
- Chapter 6
- Assembly Language Programming and Turbo Assembler
-
- Overview of 80x86 CPU Architecture
- Bit representations
- Memory Addressing
- Turbo Pascal Memory Structure
- 80x86 Processor Instruction Set
- Direct Memory Address: The Use of Mem, MemW and MemL
- Direct Port Access: The Use of Port and PortW
- The Use of Inline Statements
- Encoding Multiple Bytes
- The Inline Directive
- The Built-in asm Assembler
- Using the Built-in Assembler
- How Procedures and Functions Are Called
- Accessing Global Variables
- The Difference Between Constants and Variables
- Local Variables in Procedures and Functions
- Accessing Value Parameters and Variable Parameters
- Function Return Values
- Accessing Pointer Variables
- Accessing Record Structures
- Statement Labels
- Jump Instructions
- Near and Far RET return instructions
- Data Formats and Definitions
- Table of Internal Data Representations
- DB, DD and DW Directives
- Using DB, DW and DD for Multiple Values and Symbols
- Assembler Expressions
- Turbo Assembler Basics
- Turbo Assembler Statements
- A Sample Program
- Assembling and Compiling
- Turbo Assembler Summary
-
-
-
- Chapter 7
- Debugging Turbo Pascal
-
- Program Testing Strategies
- Catching Software Defects Before They Happen
- Debugging Strategies
- Logic errors
- Unitialized variables
- Unitialized or Erroneous Pointer Values
- Changes to Global Variables
- Failure to Free Up Dynamically Allocated Memory
- Off by 1 Errors
- Clobbering Memory and Out of Range Errors
- Ignoring Pascal Scoping Rules
- Undefined Functions
- Check all Return Error Codes
- Boundary Conditions
- Debugging Techniques
- The IDE Debugger
- Compiling for the IDE Debugger
- Using the Integrated Debugger
- Debugger Windows
- The Watch Window
- Changing the Value of Variables
- Using Breakpoints
- Other Debug/Breakpoints features
- The Debugger Unit
- Using Turbo Debugger
- Compiling for Turbo Debugger Compatability
- Starting Turbo Debugger
- The Watch Wndow
- Inspector Windows
- Evaluate/Modify
- Viewing All Variables
- Controlling Program Execution
- Breakpoints
- Setting Breakpoint Options
- Inserting Executable Expressions
- Changed Memory Global..
- Expression True Global...
- Viewing Breakpoints
- Turbo Debugger and Assembling Language Programs
- Protected Mode Debugging on the 80286
- Virtual Debugging on the 80386
- Starting the Virtual Debugger
- Debugging Turbo Vision Applications
- Debugging Windows Applications
-
-
-
- Chapter 8
- Program Optimization and Turbo Profiler
-
- Program Optimization
- Using the Turbo Profiler
- Compiling for Turbo Profiler Compatability
- Selecting Program Areas to Profile
- Obtaining Accurate Measurements
- Improving the Program
- Statistics Provided by Turbo Profiler
- Turbo Profiler Output Options
- Active versus Passive Profiling
- Optimization Tricks
- Clean Up of Loop Statements
- Test for the Most Likely Outcomes First
- Set Compiler Options For Most Efficient Execution
- Replace Function Calls with Lookup Tables
- Don't be Afraid of Goto!
- Use Better Algorithms!
- Use var Parameters Instead of Value Parameters
- Consider Assembly Language
- Use Fixed Point Longints in Place of Reals
- Increase File I/O Buffers
- Memory Reduction
- Use Local and Dynamic Variables
- Recycle Memory
- Using Virtual Memory for Data
-
-
-
- Chapter 9
- Special Programming Techniques: 8087 Usage, Interrupts and TSRs
-
- Using the 80x87 Math Coprocessor
- Advantages and Disadvantages
- Important Considerations when Using the Coprocessor
- Transcendental Functions and the 80387
- Other Data Types
- Interrupt Handlers and TSRs
- Compiling TSR Programs
- Installing an Interrupt Handler
- Writing the Interrupt Procedure
- Use of the Procedure's Register Parameters
- Writing Interrupt Procedures using the Assembler Directive
- Writing TSRs
- TSR Dangers
- TSR Interrupt Trapping
- TSR Construction
- The Main Body of the Program
- InstallTSR and the Message Passing Mechanism
- Back to InstallTSR
- The Keyboard Interrupt Handler
- The INT $28 Interrupt Handler
- RunPopUp
- DoPopUpFunction
- DoUnUnstall
- The Timer Interrupt
- Debugging TSRs
-
-
-
- Chapter 10
- Turbo Pascal Standalone Programs
-
- BINOBJ
- GREP
- MAKE
- Example Use of MAKE
- Explicit Rules
- Command Lines
- Implicit Rules
- Conditional Directives
- Using BUILTINS.MAK
- Macros
- MAKE Command Line Options
- THELP
- TOUCH
- TPC and BPC - Standalone Turbo Pascal compilers
- TEMC The Turbo Editor Macro Compiler
- TDSTRIP
- TDUMP
-
-
-
- Chapter 11
- Turbo Vision Tutorial
-
- What is Turbo Vision?
- Learning Turbo Vision
- About TVSHELL
- A Simple Turbo Vision Application
- How does it Run?
- Creating the Menu Bar
- NewMenu, NewSubMenu and NewItem
- NewSubMenu
- Hot keys
- Command codes
- Command Code values
- Suggested Exercise
- Using the NewLine function
- Windows and Views
- Turbo Vision Windows
- Adding a simple window
- TApplication.Init
- Adding the Window
- Introduction to Dialog Boxes and the HandleEvent Method
- Modal versus Non-Modal Dialogs
- Radiobuttons and Checkboxes
- Tab Order
- Introduction to Events and the HandleEvent method
- How Events Work
- When do you call an ancestor's HandleEvent method?
- Keystrokes
- Retrieving data from a dialog
- Setting Default Values in Dialogs
- Getting User Input
- The Dialog Data Record
- Putting Data into the Dialog
- Getting Data
- Storing Dialog Data
-
-
-
- Chapter 12
- Turbo Vision List Boxes
-
- List Boxes and Collections
- Sidebar: Introduction to Collections
- Creating a TCollection data object
- Updating an entry in the collection
- Deleting a collection entry
- Advanced TCollection retrieval methods
- Using Collections in TVSHELL6
- Adding items to DirectoryCollection
- The List Box Viewer
- Creating a List box
- Displaying List Box Text with GetText
- Summary of TCollection and TListViewer
- Finishing the TVSHELL Example Program
- Outline numbering and file selecting
- Scavenge hunts
- Selecting Files and evKeyDown Events
- Mouse Events
- DoSelectFile
- MoveCursor
- DoOpenClose
- Modifying GetText to display Outline numbering
- Finishing TVSHELL
- TShell.RenameDialog Implementation
- TShell.CopyDialog
- The Set Up Program Dialog
- The SetScreenMode Method
- Summary of SetScreenMode
- Disabling Menu Commands
- Where to go next
-
-
-
- Chapter 13
- More Turbo Vision Features
-
- Ownership versus Relationship
- Z-Order
- Views and Event Processing
- Selected Views
- Events and Event Processing Order
- Positional Events
- Broadcast Events
- User Defined Events
- Phased Events
- TApplication.Idle: Writing Background Tasks
- Using Color Palettes
- Application Color Palettes
- The Default Color Palettes
- Setting Color Palette Attribute Values
- Changing the Default Colors
- Common Problems with Color Mapping
- Fixing an out of range color problem
- Detecting Out of Memory Problems in Turbo Vision
- LowMemory and ValidView
- ValidView
- Setting The Safety Pool Size
- Cache Buffers
- TView.Valid and TGroup.Valid
- Adding On-line Help to Turbo Vision Programs
- Step 1: Writing the on-line help text
- Step 2: Using TVHC to Compile the Help Text
- Step 3: Adapting An Application for On-Line Help
-
-
- Chapter 14
- Collections
-
- Creating a Collection
- Adding records to a Collection
- How many records are in the Collection?
- Retrieving records from the Collection
- Updating an entry in the collection
- Deleting a collection entry
- Disposing the Collection
- Strings in TCollection Records
- Iterators
- ForEach
- FirstThat and LastThat
- Writing FindName as Method
- Other Uses of FirstThat and LastThat
- Collections and Memory usage
- TSortedCollection
- Sort into Descending Order
- Using PStrings
- Using TSortedCollection.Search
- TStringCollection
- Overriding Compare for TStringCollection
- TStringCollection and Duplicate Entries
- Using TStringCollection.Search
- Polymorphic Collections
-
-
-
- Chapter 15
- Streams
-
- Stream Types
- Using a Stream
- The TPersonInfo record for Stream I/O
- The Registration Record
- The ObjType Field
- The VMTLink Field
- Load and Store
- The Store Method
- Registering the stream
- All Turbo Vision Objects are Streamable
- Reading a Stream
- Defining the Load method and Registration record
- The Get Method
- Random Access Streams
- GetPos, GetSize and Truncate
- Streams in EMS Memory: TEmsStream
- Copying Entire Streams
- Handling Stream Errors
- Polymorphic Streams
-
-
-
- Chapter 16
- Resources
-
- Creating a Database with Resources
- Reading data from the Resource file
- Storing Program Resources
- Using Program Resources
- Registering Turbo Vision Components using RegisterXXXX
- Creating String Resources
- Using String Resources
- A String Resource Compiler Utility
- Adding Resources to an .EXE File
-
-
-
- Chapter 18
- ObjectWindows Basics
- Chapter written by Namir C. Shammas.
-
- Windows Data Types
- The ObjectWindows Hierarchy
- TObject
- TApplication
- TWindowsObject
- TDialog
- TFileDialog
- TInputDialog
- TWindow
- TControl
- TScrollBar
- TStatic
- TEdit
- TListBox
- TComboBox
- TGroupBox
- TButton
- TCheckBox
- TRadioButton
- TEditWindow
- TFileWindow
- Programming Note
- TMDIWindow
- TMDIClient
- TScroller
- The Windows API Functions
- Invoking Windows API Functions
- The Windows Messages
- Responding to Messages
- Sending Messages
- User-defined Messages
- Summary
-
-
-
- Chapter 19
- ObjectWindows Examples
- Chapter written by Namir C. Shammas.
-
- Resources
- The Resource Workshop
- Emulating DOS Screen in Windows
- The Minimal Windows Application
- Using Menus
- User Input and Painting Windows
- Command Buttons and Text Boxes
- A Text File Editor
- Summary
-