.topic NoContext=0
 Turbo Pascal OOP Tutor and Examples 
  
Welcome to Turbo Pascal OOP Tutor, which allows notes on Object-oriented
Programming to be viewed in a scrollable window, whilst the source code
for a number of examples can also be inspected. These example programs
can be run as executable files (.EXE) from the tutor screen.
The  menu is accessed by pressing Alt-Space.  All the other menus are
accessed by pressing Alt-Z, where Z is the first letter of the menu.
For example, the "Notes" menu is pulled down by Alt-N. The Status Line
provides appropriate prompts and shows, bottom right, the available
Heap space. Use the arrow keys to scroll the text.

Press ESC to put this help screen away.

.topic Helpfile
 Help File 
  
This help file is created by typing the information using any word
processor and conveniently in the IDE of Turbo Pascal itself.
The extended ASCII characters such as  and  are entered by holding
down the Alt key and entering the ASCII values such as 223 and 220
using the Numeric Keypad to the right of the keyboard, releasing the
Alt key after each numeric entry.

.topic Viewer=2
 File viewer 
  
A file viewer views the contents of a text file. You can use the
arrow keys to move about in the file. A file is loaded via the
{FileOpen:FOpen} menu item.

  Up         Move up one line
  Down       Move down one line
  Right      Move right one column
  Left       Move left one column
  PgUp       Move one page up
  PgDn       Move one page down
  Home       View right most column of the file
  End        View left most column of the file
  Ctrl-PgUp  View top of file
  Ctrl-PgDn  View bottom of file.

File viewers can be resized and moved using the {Windows} menu.

.topic List
 List 
  
Selecting List from the Notes sub-menu provides a screen window
containing an alphabetical list of text files covering many Turbo
Pascal OOP topics, with a brief description of the contents.
After observing the filename required, press Alt-F3 to leave this
screen display and then select Open to obtain a Dialog Box for
selection of the reqired file.

.topic LOpen
 List Open 
  
Select the required file from the Dialog Box by pressing the Tab
key and then using the arrow keys to move to the appropriate file.
Then press the ENTER key.

.topic ExCode
 Example Code 
  
On selecting Open a list of Pascal source code files is presented
for selection of the required file by pressing the Tab key and
using the arrow keys to move to the appropriate file. The ENTER
key should then be pressed.

.topic RecInit
 RecInit 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key R.

Program to illustrate the initialization of a record by conventional
means as opposed to the use of 'objects'.

.topic System
  (System) menu     (Alt-Spacebar)
  
The System menu appears on the far left of the menu bar and is
represented by the  symbol.

When you pull down the  menu, you see

  {About:SAbout}

.topic SAbout
 About 
  
When you choose the About command from the  (System) menu, a
dialog box appears, showing copyright and version information.

To close the box, press Esc, or click the top left symbol .

.topic ObjInit
 ObjInit 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key O.

Program to illustrate the initialization of a record by the use of an
object as opposed to conventional methods.

.topic WrongOOP
 WrongOOP 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key W.

Program to illustrate the need for Virtual Methods in
object-oriented programming.

.topic POpen
 Examples Open 
  
To open a source code file select Open by arrow keys and then
press ENTER, or just press O. Then use the tab key to move to
the list of programs and then the arrow keys to select the
required one. Then press ENTER.

.topic RightOOP
 RightOOP 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key i.

This is an example of object-oriented programming using virtual
methods.

.topic Notes
 Notes  (Alt-N) 
  
The Notes menu offers choices for opening files, changing
directories, and exiting the program.

 {Open:FOpen}          {Change Dir:FChangeDir}    {FExit}

.topic FOpen
 FileOpen  (F3) 
  
The Open command displays the Open a File dialog box. In this
dialog box you select the text file you want to browse in a
{file viewer:Viewer}.

The {Open a File:FOFileOpenDBox} dialog box contains:

  an {input box:FOName} with a history list
  a {list box:FOFiles} to browse the directory
  the standard {Cancel:CancelBtn} button
  {Open:FOOpenBtn} action button
  an information panel that describes the
   selected file

.topic FChangeDir
 FileChange Dir...
  
FileChange Dir brings up the {Change Directory:FCChDirDBox}
dialog box, in which you can change the current directory.

.topic FDosShell
 FileDOS Shell 
  
With the DOS Shell command, you can leave the program temporarily
to perform a DOS command or run another program.

To return to this program, type EXIT at the DOS prompt.

.topic FExit
 FileExit      (Alt-X)
  
The Exit command terminates this program.

.topic Windows
 Window     (Alt-W)
  
The Window menu contains commands to close, move and perform
other window-management commands.

Most of the windows in this program have all the standard window
elements, including scroll bars, a close box, and zoom icons.

For more about windows and their elements, refer to windows.


 Window-management commands
 

 {Size/Move:WSizeMove}        {Zoom:WZoom}
 {Tile:WTile}             {Cascade:WCascade}
 {Next:WNext}             {Previous:WPrevious}
 {Close:WClose}

.topic WSizeMove
 WindowSize/Move      (Ctrl-F5)
  
Choose this command to change the size or position of the active
window.

 
  Size
 
If you press Shift while you use the arrow keys, you can change
the size of the active window. Once you've adjusted its size or
position, press Enter.

If a window has a Resize corner, you can drag that corner to
resize the window.

 
  Move
 
When you choose WindowSize/Move, the active window moves in
response to the arrow keys. Once you've moved the window to where
you want it, press Enter.

You can also move a window by dragging its title bar with the
mouse.

.topic WZoom
 WindowZoom    (F5)
  
Choose Zoom to resize the active window to the maximum size. If
the window is already zoomed, you can choose this command to
restore it to its previous size.

You can also double-click anywhere on the window's title bar
(except where an icon appears) to zoom or unzoom the window.

.topic WTile
 WindowTile 
  
Choose WindowTile to tile all file viewers on the desktop.

 Ŀ
  1ͻ2Ŀ 
                                 
                                 
                                 
                                 
  ͼ 
  3Ŀ4Ŀ 
                                 
                                 
                                 
                                 
   
 
             Tiled Windows

.topic WCascade
 WindowCascade 
  
Choose WindowCascade to stack all file viewers on the desktop.

 1Ŀ
 2Ŀ
 3Ŀ
 4ͻ
                          
                          
                          
                          
                          
 ͼ

        Cascaded Windows

.topic WNext
 WindowNext 
  
Choose Next to cycle forwards through the windows on the desktop.

.topic WPrevious
 WindowPrevious 
  
Choose Previous to cycle backwards through the windows on the desktop.

.topic WClose
 WindowClose     (Alt-F3)
  
Choose Close to close the active window.

You can also click the Close box in the upper right corner to
close a window.

.topic Options
 Options  (Alt-O) 
  
The Options menu contains commands that let
you change {color:OColors} and {mouse:OMouse} default settings.

.topic OMouse
 OptionsMouse... 
  
The Mouse command brings up the {Mouse Options:OMMouseDBox}
dialog box, where you can set various options that control how your
mouse works, including:

  how fast a double-click is
  which mouse button (right or left) is
   active

.topic OColors
 OptionsColors... 
  
The Colors item brings up the {Colors dialog:OCColorsDBox} box,
where you can customize the colors of the display.

.topic OSaveDesktop
 OptionsSave Desktop 
  
Saves the state of all open windows to a file call OOPTUTOR.DSK. This
file can be reloaded by selecting {OptionsRestore Desktop:ORestoreDesktop}.

.topic ORestoreDesktop
 OptionsRestore Desktop 
  
Restore a previously-saved state of all open windows from a file
call OOPTUTOR.DSK. This file is saved via the
{OptionsSave Desktop:OSaveDesktop} menu command.

.topic FOFileOpenDBox
 Help on Open a File Dialog Box 
  
The Open a File dialog box contains an input box, a {file list:FOFiles},
a file information panel, the standard button {Cancel:CancelBtn},
one other action button ({Open:FOOpenBtn}), plus a history list
that's attached to the {Name inputbox:FOName}.

.topic FOName
  Name Ŀ
                                  
 
The Name input box is where you enter the name of the file to
load, or the file-name mask to use as a filter for the Files list
box (for example, *.*).

.topic FOFiles
  Files Ŀ
                                  
   FILENM01.PAS    FILENM09.PAS  
   FILENM02.PAS    FILENM10.PAS  
   FILENM03.PAS    FILENM11.PAS  
   FILENM04.PAS    FILENM12.PAS  
   FILENM05.PAS    ..            
   FILENM06.PAS    \MOREXAMP     
   FILENM07.PAS    \TOURS        
   FILENM08.PAS    \ANSWERS.DIR  
      
 
The Files list box lists the names of files in the current
directory that match the file-name mask in the Name input box,
plus the parent directory and all subdirectories.

 Ŀ
  C:\TP\EXAMPLES\*.PAS                     
  HELLO.PAS       52  Jul 14,1990  12:00pm 
 
The File information panel shows the path name, file name, date,
time, and size of the selected file.

None of the items on this information panel are selectable.

.topic FOOpenBtn
 Ŀ
  [ Open ] 
 
The Open button opens a new Viewer window and places the selected
file in that window.

.topic CancelBtn
 Ŀ
  [ Cancel ] 
 

If you choose Cancel, nothing changes and no action occurs, and
the dialog box is put away.

(Esc always cancels a dialog box, even if a Cancel button does
not appear.)

.topic OpenBtn
 Ŀ
  [ Open ] 
 

In the Open a File dialog box, if you choose the Open button
TVDEMO opens a new {file viewer:Viewer} and places the selected
file in that window.

.topic FCChDirDBox
 Help on the Change Directory dialog box 
  
The Change Directory dialog box consists of an input box, a list
box, the standard OK and Help buttons, and two other buttons
(Chdir and Revert).

  Directory Name Ŀ
                                      
 
The Directory Name input box is where you type in the path of the
new directory.

  Directory Tree Ŀ
    Drives                            
    C:\                            
      TP                           
        TVISION                    
 
The Directory Tree list box enables you to navigate directories
by using the selecting bar and pressing Enter.

If you're using the keyboard, press Enter to make the selected
directory be the current directory, then choose OK or press Esc
to exit the dialog box.

 Ŀ
  [Chdir ] 
 
The Chdir button changes the current directory once you've
selected or typed in a directory name.

 Ŀ
  [Revert] 
 
The Revert button goes back to the previous directory, as long as
you haven't yet exited the dialog box.

.topic OMMouseDBox
 Help on the Mouse Options dialog box 
  
This dialog box consists of one check box, one slider bar, and
the standard buttons OK and Cancel.

 Ŀ
  Mouse Double Click       
  Slow     Medium     Fast 
   
 
The Mouse Double Click slider bar adjusts the double-click speed of
your mouse.

 Ŀ
  [X] Reverse Mouse Buttons 
 
Reverse Mouse Buttons makes the right mouse button take on the
normal functions of the left--and vice versa.

 See also:
 
 {OptionsMouse... menu command:OMouse}

.topic OCColorsDBox
 Help on the Colors dialog box 
  
The Colors dialog box consists of two list boxes, a text display
area, the standard OK, Cancel, and Help buttons, and one of the
following:

  On color and black-and-white systems, it
   also contains two color palettes.
  On monochrome systems, it contains a set
   of radio buttons instead of the palettes.

This dialog box is where you can change the colors of different
parts of this program.

  Group Ŀ
    Desktop          
    Menus            
    Dialogs/Calc     
    Puzzle           
    Calendar         
    Ascii table      
                     
 
The Group list box contains the names of the different regions of
the program that you can customize.

  Item Ŀ
    Color            
                     

When you select a group from the Group list, the Item list box
displays the names of the different views in that region.

  Foreground     Background 
        
        
      
 
On color and black-and-white systems, you use the Foreground and
Background palettes to modify colors.

  Colors Ŀ
   () Mono low        
   ( ) Mono high       
   ( ) Mono underscore 
   ( ) Mono inverse    
 

On monochrome systems, you use the Colors set of radio buttons
systems to modify the character attributes.

 Ŀ
  Text Text Text 
  Text Text Text 
 
On all systems, the display text (above the Help button) shows
the current color or attribute settings.

Changes do not take effect on the desktop until you close the
Colors dialog box by choosing OK.

.topic JuniorOb
 JuniorOb 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key J.

Program to illustrate the correct use of Virtual Methods, using a unit.

.topic RunEx
 Run Examples 
  
Select the appropriate example from the sub-menu, by using
the arrow keys and pressing ENTER, or by pressing the
appropriate highlighted letter.

.topic StaffObj
 StaffObj 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key S.

Unit as part of the illustration of Virtual Methods.

.topic Dosops
 DOS Operations 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key D.

Program to illustrate the use of DOS operations from a Turbo
Pascal Program.

.topic Figdemo
 Figures demonstration 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key F.

From Chapter 4, Object-Oriented Programming, in the User's Guide.
Shows how to Extend FIGURES.PAS with type Arc, and then with
types FullLine and Rectangle. The reader is invited to add another
type such as Ellipse.

.topic ListDemo
 ListDemo 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key L.

From Chapter 4 the Turbo Pascal 6.0 User's Guide.
Dynamic objects & destructors.

If you are running this program in the IDE, be sure to enable
the full graphics save option when you load TURBO.EXE:

turbo -g

This ensures that the IDE fully swaps video RAM and keeps
"dustclouds" from appearing on the user screen when in
graphics mode. You can enable this option permanently
via the Options|Environment|Startup dialog.

This program uses the Graph unit and its .BGI driver files to
display graphics on your system. The "PathToDrivers"
constant defined below is set to \TP\BGI, which is the default
location of the BGI files as installed by the INSTALL program.
If you have installed these files in a different location, make
sure the .BGI file for your system (EGAVGA.BGI, etc.) is in the
current directory or modify the "PathToDrivers" constant
accordingly.

.topic Streams
 Streams 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key S.

Demo program from the Turbo Vision Guide to illustrate the use
of Streams to transfer objects between devices, such as memory
and the disk. The original Borland program has been modified
to display details of Stream Registration and Graphical Shapes.
DOS Debug is also used to display a memory check for the
collection of graphical shapes and to inspect the stream file
GRAPHICS.STM and this is achieved from the program using the
Exec procedure.

.topic Collect
 Collections 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key C.

Demo program from the Turbo Vision Guide to illustrate the use
of Collections. The original Borland program has been modified
to check memory for a collection of objects (clients) using
DOS Debug from the program by means of the Exec procedure.

.topic ObCompat
 Object Compatability 
  
This program can be run by selection using the arrow keys and
pressing ENTER, or else by pressing the highlighted key b.

Program to show dynamic objects and to illustrate the compatability
of descendant objects with ancestors. A simple database situation is
created with Surname and Forenames having a descendant, Address, which
in turn has a descendant, Phone. As in the Borland program, LISTDEMO,
a Node record is created on the Heap and this points to the data item
and to the next Node record.
