                        Welcome to Delphi
                        =================

Welcome to the Field Test #5 of Delphi. Make sure you review
INSTALL.TXT before you install Delphi. We thank you in advance
for maintaining strict confidentiality about the existence of and
characteristics of Delphi. Do not discuss Delphi in any public
forum. Unless otherwise indicated, all materials provided in this
field test are copyright (C) 1994 by Borland, Inc.

For those of you who have participated in past test programs,
there are extensive notes below on how to convert your existing
projects for use with this new release. Finally, please do not
assume that the same testers are included in this pool.


TABLE OF CONTENTS
-----------------
 1. Installation
 2. If you have a previous release of Delphi
 3. Source code to the run-time and component libraries
 4. Demo programs and sample source code
 5. VBX controls
 6. Guide to Documentation and Help
 7. Contacting Borland
 8. Turbo Debugger for Windows
 9. Converting from the Client/Server Beta
10. Known problems


1. INSTALLATION
---------------
Please refer to the file INSTALL.TXT in the \DELPHI directory on
your CD for installation information. The printed documentation
and the notes in this file assume you have installed Delphi using
the default directory structure.


2. IF YOU HAVE A PREVIOUS RELEASE OF DELPHI
-------------------------------------------
If you have the Client/Server beta release of Delphi, we suggest
that you archive it and remove it from your system before
installing this new release. Do not install this version into the
same directory tree structure as the previous one. Refer to the
extensive section below on updating your existing projects to
work with this latest release.


3. SOURCE CODE TO THE RUN-TIME AND COMPONENT LIBRARIES
------------------------------------------------------
Refer to the \DELPHI\SOURCE directory for the complete source
code to the Visual Component Library (VCL) and the standard
run-time libraries (RTL). For legal purposes, the source code to
the tab controls (TABS.PAS and TABNOTBK.PAS) are not provided.


4. DEMO PROGRAMS
---------------------------------------
Demo programs are in the \DELPHI\DEMOS directory. Database demos
are in the \DELPHI\DEMOS\DB directory. Their sample data is in
\DELPHI\DEMOS\DATABASE. The install program creates a Borland
Database Engine (BDE) alias named DBDEMOS on your system which is
used by the database demo programs. TASM and TDW examples are in
the \DELPHI\EXAMPLES directory.


5. VBX CONTROLS
---------------
The following VBX controls are now installed as Delphi components
on the VBX page of the Component palette:

  GAUGE.VBX    - Gauge control to indicate progress
  SWITCH.VBX   - Sample toggle switch
  PICT.VBX     - Picture control (VBX equivalent to TImage)

A 3D graph and chart VBX control, TKCHART.VBX, is also included
in this field test and may be installed using OPTIONS|INSTALL
COMPONENTS.

We suggest that you copy all of these VBX files to your
\WINDOWS\SYSTEM directory.

Delphi is fully compatible with the Borland Visual Solutions
Pack, version 1.1. This product contains spreadsheet,
communication, and other useful VBX controls.


6. GUIDE TO DOCUMENTATION
-------------------------
This section covers the following topics:

o Technical Documentation
o Interactive Tutors
o Online Help
o Information not included in this release


Technical Documentation
=======================
The following information media are included with this release of
Delphi:

 - Manuals
 - Interactive tutors
 - Online Help

  Manuals
  =======
  Twelve manuals are available with this release of Delphi.

  The following manuals have been revised since the last Delphi Beta:

    Delphi Users Guide
    Delphi Component Writers Guide
    Database Desktop Users Guide
    Delphi Database Application Developers Guide
    ReportSmith Getting Started Version 2.5
    ReportSmith User's Guide Version 2.5
    ReportSmith Runtime and Data Dictionary Guide Version 2.5

  The following manuals are the same versions that were prepared
  for the Client/Server field test:

    Getting Started (Borland SQL Links for Windows)
    Connecting to Interbase
    Connecting to Oracle
    Connecting to Sybase and Microsoft
    Connecting to Informix

  Interactive tutors
  ==================
  This version of Delphi includes seven interactive tutors
  designed to help you learn how to create applications with
  Delphi. To use these tutors, select Interactive Tutor from the
  Help menu.

  The following interactive tutors have been revised based on
  usability feedback:

   - A Quick Look At Delphi
   - Creating A Simple Application
   - Adding Components To A Form
   - Setting Component Properties
   - Writing Event Handlers

  These new tutors are included in this field test:

   - Setting up a Table View:
     Guides users through placing Table, DataSource
     and DBGrid components to browse a table.

   - Querying a Table:
     Guides users through placing components and writing an
     SQL statement to select fields from a table.

  Online Help
  ===========
  New in this version of Delphi Help

  >> Task information for components

  To access Task information,
  1. With a component selected either in the Palette or on the
     form, press F1.

  2. From the reference screen, choose the Tasks jump.

  >> Preliminary documentation on connecting to databases
     (TDatabase, TTable, TQuery, TDataSource, and the
     data-aware components) and performing batch operations
     (the TBatchMove component).

  To access this database documentation,
  1. From the Delphi Help Contents screen, choose Building
     Applications | Building Database Applications | Database
     Applications Tasks.

  >> New reference information on declarations in each unit.

  To access this information,
  1. From the Delphi Help Contents screen, choose Object
     Pascal Language | Language Reference | Units.

  >> New information on using the Integrated Debugger

  To access this information,
  1. From the Delphi Help Contents screen, choose Tools |
     Integrated Debugger.

  >> Information on how to use the Delphi Help system.

  To access this topic,
  1. From the Delphi Help Contents screen, choose
     Essentials | Using Help.

  >> Information on handling keyboard events.

  To access this topic,
  1. From the Delphi Help Contents screen, choose Building
     Applications | Responding to User Events | Keyboard
     Events.

  >> From most external Help systems (WinAPI, WinSight,
     WinSpectre), you can choose the Delphi button on the
     button bar to return to the Delphi Help Contents screen.

  >> Look for the following items in Online Help in the final
     product release:
     - Updated Language Definition
     - VCL Reference for Component Writers
     - Using the IDE's "Tools API"

Information not covered in this release
================================================

>> Database Desktop Create and Restructure Information
   Please refer to the readme file for information on Create
   and Restructure. This information will be added to the final
   release version of the Database Desktop User's Guide and
   online Help.

>> In Online Help Under "Programming Environment|Component
   Palette, the representation of components and pages of the
   Component Palette do not reflect the latest product build.
   To view current information on a component, press F1 with a
   component selected in the palette or placed on a form.

>> Components on the Sample or VBX page are not documented.


7. CONTACTING BORLAND
---------------------
The purpose of this field test is to get feedback from you. We
encourage all testers to use our private message section on
CompuServe so that all testers may benefit from answers to
questions from other testers, receive important bulletins and
download file updates from Borland. If you prefer, we can also be
reached by email or FAX. If necessary, you can also telephone us
at the numbers provided in the cover letter that accompanied this
package.

Please confine your messages to discussions related to testing
and evaluating the technical aspects of Delphi. Comments about
marketing issues and platform support can be sent by private mail
to the field test coordinators listed in the cover letter.

Your Field Test administrator is Arlette Lucchesi-Munoz. Call her
to report changes of address or problems with the installation
disks. Here are the toll-free numbers:

  Phone:          Inside CA       1-800-742-4045
                  Outside CA      1-800-231-2167

  Facsimile:      408-431-4178


8. TURBO DEBUGGER 4.0
---------------------
This version of TDW is provided to enable you to do DLL and
low-level debugging. It is not fully aware of language
enhancements such as properties, bound method pointers,
exceptions, class references. (In fact, TDW may GPF if you
inspect a Delphi property.) In addition, TDW does not support
hardware debugging. Make sure to install and use this version of
Turbo Debugger with Delphi even if you have another copy of
TDW.EXE on your system.

Turbo Debugger 4.0 requires the presence of TDW.INI in the
Windows directory. If you have an existing file by this name,
change the contents as noted below.

The contents of the TDW.INI should include at least the following
(which will be created for you by running TDWINI.EXE):

[TurboDebugger]
VideoDLL=c:\DELPHI\bin\tdwgui.dll
DebuggerDLL=c:\DELPHI\bin\tdwinth.dll

To configure TDW to run in a graphical window, run the TDWINI
utility and select the TDWGUI.DLL from the DELPHI\BIN directory.
You can also set the window font and position by clicking on the
Settings button.


9.  CONVERTING FROM THE CLIENT/SERVER BETA
------------------------------------------
Many changes have been made to form files and to the libraries as
part of the product finalization process. Most of the changes are
the direct or indirect result of usability feedback from beta
testers. This section contains a complete list of the steps you
must take to bring C/S beta projects up to date with this
field test release.

Note that this section is only applicable if you have existing
projects to update for the new release. Future releases
of Delphi will require very few modifications your projects.

Though changes were made to properties, components, units, method
parameters and filenames, it still takes just a few minutes to
convert a typical project if you follow the step-by-step
instructions below. Note that the IDE will now load forms that
contain unknown properties and components. When a form is loaded
that contains a property or component that is no longer
supported, a warning will display and you will have the option to
skip the unknown component or property and continue loading the
form.

Here's a summary of what changed and what to do: [in order]

  What Changed                    What To Do
  ------------                    ----------
  DELPHI is the new name for      Remove references to APPBUILD from
  everything that was previously  your DOS path and SETUP will do
  named APPBUILD.                 everything else for you. Just
                                  make sure you don't install over
                                  the old directory tree and do
                                  not copy APPBUILD.INI on top of
                                  DELPHI.INI. You can use
                                  IDAPICFG.EXE to merge your old
                                  database aliases into the new
                                  BDE configuration file
                                  (IDAPI.CFG).

  Renamed projects from *.PRJ     Rename files manually; rename
  to *.DPR (Delphi Project)       File Manager associations (if you
                                  had any).

  Renamed forms from *.FRM to     Rename files manually; change
  *.DFM (Delphi Form)             {$R *.FRM} to {$R *.DFM} in
                                  all .PAS files that have forms;
                                  rename File Manager associations
                                  (if you had any).

  Form creation is now done in    For each .DPR file, delete
  the project (.DPR) instead of   the parameter to
  in the initialization section   Application.Run and then use
  of the unit (.PAS). In the      the OPTIONS|PROJECT's FORMS
  .DPR file, we changed           page to generate CreateForm
  the code from:                  statements (start a new project
                                  to see an example). You'll
  begin                           update your .PAS files in a
    Application.Run(Form1);       few moments.
  end;

  to:

  begin
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  end;

  Several properties and          As you load each form into IDE,
  components were renamed or      you'll have the option to skip
  removed.                        unknown properties and components.
                                  Ignore the errors, load and
                                  save the form and then add back
                                  any functionality that was
                                  removed. A section below
                                  describes what was changed.

You're now ready to begin compiling and correcting syntax errors.
You may still have references in your source code to components
and properties that were removed as part of this update process.

  We renamed and merged various   See list of source changes
  units.                          below.

  As described above, we moved    You've already updated the
  automatic component             project file. Now just delete
  registration and form           the entire initialization
  instantiation from each form    section of each form's
  unit's initialization section   unit (.PAS).
  to the project file (.DPR).

If you have other code in your unit's initialization section,
we've added a new reserved word to introduce that section. Make
sure to replace the begin/end. pair with:

  unit xxx;
  interface
  implementation
  ...
  initialization
    { your init code here }
  end.


More on conversion
------------------
AUTOMATIC COMPONENT REGISTRATION - In previous releases, Delphi
automatically registered each component on a form via a
RegisterClasses call in the unit's initialization section.
Instead, Delphi now scans the class declaration and registers all
the classes encountered in the first declaration section. If you
have previously deleted the source declaration for components
which are still on your form (some people do that to improve
readability), make sure you leave at least one instance variable
declaration for each type of component on the form. For example,
if you have 30 TLABELs on your form and want to eliminate them
from the TForm declaration, delete all but one and TLabel will
still be autoregistered. (Note: You can also manually call
RegisterClasses in the initialization section of the unit.)

UNIT CHANGES - Strings, Excepts, and Dates are merged into a new
unit called SysUtils. MsgDlg and CDialogs are merged into a new
unit called Dialogs. DBEdit is merged into DBCtrls; TQuery,
TTable and DBLists are merged into DBTables; Parsers is merged
into Classes.

In all cases, remove the unknown units from your USES
clause and add the new ones where required.

OBSOLETE PROPERTIES - These are now stripped by the IDE, but
you'll still have to remove any source code references that you
typed:

 - TForm.ParentFont
 - TForm.HorzScrollBar.AutoScroll
 - TForm.HorzScrollBar.AutoRange
 - TForm.VertScrollBar.AutoScroll
 - TForm.VertScrollBar.AutoRange
 - TDBEdit.Text
 - TDBEdit.EditMask
 - TDBImage.Picture.Data
 - TDBMemo.Text
 - TDBMemo.Lines
 - TDBNavigator.EnabledButtons
 - TDBGrid.ColumnLayout.DisplayFormat (see below)
 - TDBGrid.ColumnLayout.EditMask
 - TDBGrid.ColumnLayout.EditMaskSave
 - TDBGrid.ColumnLayout.EditMaskBlank

DATABASE GRID COLUMN LAYOUT

A data grid no longer keeps track of column layout information.
Instead, it gets this information from its dataset. Use the new
"Dataset Designer" to control column layout, titles, widths and
so on. To bring up the Dataset Designer, right-click on a TTable
or TQuery object, add or define fields and then use the Object
Inspector to set field layout properties (visible, DisplayLabel,
etc.). Drag/drop column resizing of the grid in design mode now
affects the underlying TField objects. Refer to the Delphi
Database Application Developers Guide for more information.

(To extract the column layout information from previous forms,
load the .DFM file into the editor and it will be automatically
converted to text. Refer to the obsolete TColumnLayout properties
while updating the new TField property values in the Object
Inspector.)

OTHER CHANGES

TForm.OnActivate no longer takes a boolean parameter. Use
OnDeactivate instead.

TForm.OnClose has a new parameter:

  Changed from:  procedure TForm1.Form1Close(Sender: TObject;
                   var CloseForm: Boolean);
  Changed to:    procedure TForm1.Form1Close(Sender: TObject;
                   var Action: TCloseAction);

Format procedure changes. "Format" parameters no longer need "@"
(address operator) and are now type-safe:

  Changed from:  Format('Select * from %s', [@VarName]);
  Changed to:    Format('Select * from %s', [Expression]);

  The array constructor now takes a list of any type expression,
  including constant expressions. In addition, %s is now used for
  both strings and PChars (%z is obsolete).

TDatasource.OnDataChange has a new parameter:

  Changed from: procedure TForm1.Form1DataChange(Sender: TObject);
  Changed to:   procedure TForm1.Form1DataChange(Sender: TObject;
                  Field: TField);

TDataset.SetRange has been renamed to ApplyRange.

TDataset.ResetRange has been renamed to CancelRange.

TField.Name has been renamed to TField.FieldName.

ON syntax in a TRY..EXCEPT..END exception statement has changed.

  Changed from:

    try
      ...
    except
      on Exception(E) do ...
    end;

  Changed to:

    try
      ...
    except
      on E: Exception do ...
    end;

A TDDEClient.ExecuteMacro parameter was changed from string to
PChar type:

  Changed from: function TDDEClientConv.ExecuteMacro(Cmd: string;
                  waitFlg: Boolean) : Boolean;
  Changed to:   function ExecuteMacro(Cmd: PChar;
                  waitFlg: Boolean) : Boolean;


10. KNOWN PROBLEMS
-----------------
The following is a partial list of known problems and includes
things NOT to do. Some of them may cause GP faults or program
crashes. Please remember that this is beta software. Even though
there have not been any data corruption problems reported, make
sure you have back up copies of your essential data before using
this field test:

Development Environment
-----------------------
o Insufficient low memory - Windows requires a minimum amount of
  low memory in order to launch an application. If available low
  memory is insufficient when you try to run or debug an
  application, a CANNOT CREATE PROCESS error message will appear.

  Here's how you can increase the available DOS memory:

    o Run the BDE Configuration utility (IDAPICFG.EXE), select
      the SYSTEM page and reduce or zero the "LOW MEMORY USAGE
      LIMIT" setting.

    o Modify your CONFIG.SYS and AUTOEXEC.BAT files to eliminate
      DOS TSRs or load them into "high memory".

    o Many Windows applications inadvertently use low memory.
      Closing other Windows applications will often free up a
      significant amount of low memory.

o Saving new projects - We recommend that you rename Units and
  Forms from their defaults (e.g. Form1, Unit1) when you first
  save your project. Selecting FILE|NEW PROJECT will create a
  project named PROJECT1.DPR even if one already exists in the
  same directory.

o When saving a new project, a bug causes the IDE to return to
  its notion of the "project directory" each time you are
  prompted to save a new form or unit. To minimize directory
  navigation, save the project file first (FILE|SAVE PROJECT AS)
  and then do a project save (FILE|SAVE PROJECT) to save
  new units and forms.

o Do not run multiple instances of Delphi.

o If you create a project or file with an invalid path, use
  FILE|SAVE As to correct the path.

o The Find, Find&Replace, and Undo buttons, when placed on
  the speedbar do not work.

o Canceling a Print job is not yet supported.

o Interactive Tutors - There are known problems when exiting
  Delphi while an Interactive Tutor is still active. Make sure to
  close the Tutors before closing the IDE. We also recommend
  using Delphi's default environment options when running an
  Interactive Tutor. In this release, there are known problems
  that occur when you run more than one tutor back-to-back. We
  recommend that you quit the Interactive Tutors after running
  each one and then select HELP|INTERACTIVE TUTORS and select the
  next one.

Visual Component Library
------------------------
o TLabel - There are problems with Autosize if the first
  character in the caption is an ampersand (&).

o TForm.Close - The following information applies only if you've
  written an TForm.OnClose event handler that sets the Action
  parameter to caFree. In that case, it is unsafe to call the
  Close method from a control in the form. For example, it is
  unsafe to call Close from a button's OnClick event handler.
  This problem will not occur if the call to Close occurs in a
  menu item's event handler.

o Undefined help filename - Your system will lock up if no help
  file is specified in the Application.HelpFile property and
  the application invokes the Windows help system.

Database
--------
o DBGrid - An error message will display if you try to append to a
  read-only datasource (e.g. go to the end of the grid and hit
  TAB or DOWN).

o DBGrid - If you are appending to an empty table, the first
  keystroke puts the table into edit mode but is discarded
  before being passed to the grid's edit control.

o See LOCALSQL.TXT in the \DELPHI\DOC directory for information
  about SQL support against Paradox and dBASE databases.

o There are known problems with multiple connections to an ODBC
  data source. If you are writing applications that access data
  via ODBC, make sure you don't have any datasets active during
  design time and or your program will get a GPF when you run it.
  This same problem will occur if you have ReportSmith active and
  you run any application that access an ODBC data source
  (including one that launches the ReportSmith runtime).

o Data-aware controls (e.g.  TDBEdit, TDBComboBox) do not
  function unless they are connected to an active datasource.

o Linking tables - A known problem exists when using the
  TTable.Datasource to do a master/detail link based on a
  compound key. The fix was applied to \DELPHI\SOURCE\VCL\DB.PAS
  just before disk duplication. To correct this problem, switch
  to the \DELPHI\LIB directory, delete DB.DCU, and copy
  \DELPHI\SOURCE\VCL\DB.PAS. The problem will be corrected when
  you compile any Delphi database application or rebuild the
  component library.

o The Visual Query Builder (VQB) does not use the DatabaseName
  setting of the associated TQuery component in Delphi and you'll
  have to login whenever you bring up the VQB. In addition, we do
  not recommend executing parameterized queries from the VQB.

o To change the driver type of an alias, always clear the
  TDatabase.DriverType property before changing the
  TDatabase.DatabaseName property.

o TDBMemo control does not yet perform ANSI/OEM conversions.

o The TTable.CreateTable function does not yet support all
  field types.

o Managing Database Connections - Once connected to a server at
  design-time, you will remain connected until you exit Delphi.
  At run-time, you can call Session.DropConnections or set
  Session.KeepConnections and TDatabase.Connected to False.

Demos
-----
o MDIOLE.PAS - This file is found in the \DELPHI\DEMOS\OLE2
  directory. Before running the demo, select the edit window,
  search for "OleControl1" and change all three occurrences to
  "OleContainer1".

Other operating systems
-----------------------
o Delphi runs under shipping Windows NT 3.5. There are known
  problems with IDAPICFG, Interactive Tutors and integrated
  debugging.

o Delphi has been tested and performs well under recent
  pre-release versions of Windows 95. We do not recommend running
  Delphi under M7 until Microsoft corrects known problems with
  that release.
*****************************************************************
