DELPHI32 FIELD TEST RELEASE NOTES
---------------------------------

Welcome to Delphi32!

We thank you for maintaining strict confidentiality about
the characteristics and existence of Delphi32. Please refrain
from discussing Delphi32 in any public forum.

Unless otherwise noted, all materials provided in this
field test software are copyright (C) 1995 by Borland, Inc.

============================================================
IMPORTANT: Distributing applications generated with this
field test version of Delphi32 is prohibited.
============================================================


TABLE OF CONTENTS
-----------------
 1. What's New in Delphi32
 2. Before You Install...
 3. Getting Help
 4. Minimum System Requirements
 5. Installing Delphi32
 6. Uninstalling Delphi32
 7. Ole support in this release
 8. What's in the DOCS Directory?
 9. What's in the DEMOS Directory?
10. SQL Links Availability
11. Known Problems & Compatibility Issues


1. WHAT'S NEW IN DELPHI32
--------------------------
Delphi32 features include:

  - Full support for Windows 95 and Windows NT
  - Optimizing 32-bit compiler generates even faster code
  - New 32-bit data types including long strings and variants
  - New multi-error, multi-warning compiler
  - Improved compiler diagnostics and error messages
  - Smart-caching linker
  - Support for .OBJ files
  - Components to support Windows 95 UI controls
  - Support for hosting OLE controls (OCX)s
  - Support for OLE automation controlling
  - Faster 32-bit Borland Database Engine
  - Improved IDE with Windows 95 look and Database tools menu

These and other new Delphi32 features are detailed in the "What's
new in Delphi32" help topic. To access these topics, select the
Contents option from the Help Menu:

o New Data Types            o New Components
o OLE Automation            o Moving to Delphi32
o New Compiler Directives   o Compiler Optimizations
o Unit Finalization         o Calling Conventions
o Menu Changes              o OCX Controls
o OLE Automation Support    o Using Delphi32 Help


Subsequent field releases will include numerous other new features
such as OLE automation server capabilities, a new query engine with
updateable queries and greater ANSI-92 DML compatibility, new faster
32 bit SQL Links drivers, 32 bit Local InterBase server, data 
dictionary support, improved reporting capabilities and more.  
There will also be new components, tools, demonstration programs, 
documentation and, of course, bug fixes.

2. BEFORE YOU INSTALL DELPHI32
------------------------------
This field test assumes the presence of the current 16-bit release of
Delphi. Be sure to back up your essential data--including projects
you intend to share between 16- and 32-bit versions of Delphi--before
attempting to install this field test version of Delph32.

If you want to compile applications for Windows 3.1, continue to
use the current commercial release of Delphi. In addition, there
are several utilities provided in 16 bit Delphi which are not
included in this field test release. A future field test release of
Delphi32 will include new versions of ReportSmith, Database Desktop
and Local Interbase Server.

Note that the Microsoft Visual Basic Extension specification
(VBX control) is not supported by Windows 95 or Windows NT and
therefore Delphi32 does not provide such support.

3. GETTING HELP
---------------
Refer to the cover letter that accompanied this package for
information on obtaining support for this pre-release version of
Delphi32.


4. MINIMUM SYSTEM REQUIREMENTS
------------------------------
Delphi32 requires a version of Microsoft Windows 95 (build 950r6
"final" or "gold" release or later) or Windows NT 3.51 or later. A
full installation of Delphi32 and the Borland Database
Engine (BDE32) requires approximately 34 Mbytes of hard disk space.


5. INSTALLING DELPHI32
-----------------------
To install Delphi32, run \SETUP from the Delphi32 CD-ROM. By
default, Delphi32 installs into the \Borland\Delphi32 directory.
This README file and all other documentation assume you have used
the default directory structure. If you install to a different
location, make sure you do not install this field test over any
previous Delphi release.

Before you try any database demo programs, run \Borland\Common
Files\Idapi\BDECfg32.exe and create a Standard alias called
DBDEMOS. Data for the demo projects are in the
\Borland\Delphi32\Demos\Data directory.

We recommend that you do not change the default directories
suggested in SETUP. There are known problems with this version of
SETUP and long pathnames.


6. UNINSTALLING DEPHI32
-----------------------
To remove Delphi32 from your computer:

1. Open the Control Panel folder, and click
   on the Add/Remove Programs icon.

2. Select Delphi32 for Windows 95 from the
   list display, and click the Add/Remove button.

3. Click on the Automatic button to remove the
   software and all related files.


7. OLE SUPPORT IN THIS RELEASE
------------------------------

This release includes support for hosting Ole Controls (OCX) and
for controlling Ole automation servers.

There is no component in this release that corresponds to the
16-bit TOleContainer component. One will be provided in a later
field test.

The Ole controls included in the OCX directory are provided as a
courtesy by 3rd parties as examples. This release does not yet
support programmatic access to Font and Picture properties or
hiding non-visual controls at run-time.

Ole Automation Notes - Refer to
\Borland\Delphi32\Source\VCL\OleAuto.pas and the demo in
\Borland\Delphi32\Demos\OleAuto for more information.

  o CreateOleObject - Takes a programmatic ID and returns a
    variant. See \Borland\Delphi32\Demos for an example.

  o GetActiveOleObject - For Ole automation servers that support
    the notion of an "active object," use GetActiveOleObject to
    get a Variant that refers to the active object.

  This release does not provide a function that binds to a
  document.

  You can convert a pointer to Ole interface to a variant by
  calling VarFromOleObject. It will obtain an IDispatch by
  calling QueryInterface for the object provided and then return
  the result as a variant.


8. WHAT'S IN THE DOCS DIRECTORY?
------------------------------------------

The \Borland\Delphi32\Docs directory contains:

  o D32_Q&A.DOC  -- A list of common questions and answers
  o D32_OVER.DOC -- A whitepaper overview of the 32-bit Delphi compiler
  o D32*.PCX D32*.BMP -- Screenshots of Delphi32


9. WHAT'S IN THE DEMOS DIRECTORY?
-------------------------------------------

Here's an overview of the example programs and data located in
the \Borland\Delphi32\Demos directory:

\Borland\Delphi32\DEMOS
  \DB - Contains all database sample projects. Data used by these
        examples is in the \Borland\Delphi32\Demos\Data
        directory. Before you try any database demo programs, run
        \Borland\Common Files\Idapi\BDECfg32.exe and create a
        Standard alias called DBDEMOS.

    \FISHFACT - Uses TBlobField and TMemoField to access Paradox data.
    \MASTAPP  - Extensive example featured in Chapter 2, 4, and
                Appendix D of the Database Application Developer's 
                Guide. Refer to the comments at the beginning of
                MAIN.PAS for more complete information.
    \QJOIN    - Simple SQL join.
    \TWOFORMS - Simple example that shows how multiple forms
                can share a single dataset (DBG, Ch. 3).

  \DATA       - Contains all data used by sample programs. Note
                that the Mastapp example defines referential
                integrity rules on the CUSTOMER, ORDERS, ITEMS
                and PARTS tables. These rules, which require that
                the master record be posted before a detail
                record may be posted, are defined in both the
                Paradox tables (.DB) the Local InterBase Server
                database (MASTSQL.GDB) versions of this data. If
                you write database applications that insert data
                into these tables and your insertions violate the
                referential integrity rules that are defined, a
                "Master Record Missing" exception will be raised.
  \IMAGVIEW   - Views and browses images (BMPs, WMFs, etc.).
  \OWNERLST   - Uses an owner-draw listbox.
  \OLEAUTO    - An Ole automation controller that controls
                Microsoft Word.
  \RICHEDIT   - A word processor that uses the Windows 95 rich
                edit control.
  \TREEVIEW   - Demonstrates the use of the Windows 95 treeview
                (outline) control.


10. SQL LINKS AVAILABILITY
--------------------------
In order to use Delphi32 with a remote SQL database, you'll need to 
obtain 32-bit client libraries (middleware) from your SQL database 
vendor. Note that some vendors have not yet made updated 32-bit 
middleware available. The following SQL Links are provided with
this field test:

  o Interbase (Remote) from Delphi on Windows 95
    and from Delphi on NT (middleware included)
  o Microsoft SQL Server 6.0 from Delphi on NT
  o Oracle 7.1 from Delphi on Windows 95

The following SQL Links will be provided in a future field test 
release:

  o SYBASE
  o INFORMIX

11. KNOWN PROBLEMS & COMPATIBILITY ISSUES
-----------------------------------------
Refer to the online help for additional information about
compatibility issues.

A. Compiler/Runtime Library (RTL)

   When a floating point value exceeds 999, FormatFloat will
   always insert a thousands separator. For example,
   FormatFloat('######', 123456.0) will output "123,456" instead
   of "123456". The workaround is to use the Format function
   instead.

   Range-checking {$R} has not been fully tested and we recommend
   leaving it disabled.

   All testing has been done with optimizations fully enabled. We
   recommend leaving the Optimizations checkbox on the
   Project|Options|Compiler page enabled.

   All global data structures are statically placed in the EXE
   file (and thus make the EXE image larger). For example, the
   sieve benchmark has an 8 KByte Flags array that adds 8
   KBytes to the EXE size. This will be optimized out in a
   subsequent field test.

   The compiler will incorrectly warn that a function's Result
   variable is not initialized when, in fact, its value is
   correctly set inside a TRY block.

   OLE automation identifiers supporting different locales are
   not supported in this release.

   Assigning Boolean values to variants is not supported in this
   release.

   The order in which functions and variables are evaluated and
   processed when passed as parameters will vary between 16- and
   32-bit releases of Delphi. It is never safe to rely on a code
   generator's evaluation order when mixing function calls and
   variable references as parameters.

   Setting the Pascal compatibility I/O directive to {$I-} does
   not disable I/O checking for the ChDir, MkDir, RmDir, and
   Flush procedures. If any of these operations fail, an
   exception will be raised even if you've specified {$I-}. You
   can easily trap and suppress the exception by using a
   TRY..EXCEPT..END statement where appropriate.

   In order to support 32-bit sized blocks, Delphi32 requires the
   Result parameter for BlockRead and BlockWrite to be a 32-bit
   integer type (e.g. Integer).

   The DeleteFile Win32 API function conflicts with the
   DeleteFile RTL function in SysUtils. An existing 16-bit
   project that passes a string to DeleteFile will generate a
   compiler error message.

   This release does not allow inline assembler or .OBJ files to
   access an object's methods using the ClassName@MethodName
   syntax.

B. IDE

   The View|Speedbar and View|Component palette menu items are
   not yet implemented and both the speedbar and component
   palette always shown.

   The Speedbar editor does not yet reflect the new menu
   structure.

   To rename the project file (.DPR), select View|Project Source
   and then File|Save As....

   The IDE does not correctly import items from the 16-bit Delphi
   gallery. Do not copy 16-bit Delphi gallery entries into the
   Delphi32 gallery directory.

   Pasting modified components from the clipboard as text can cause
   errors. You can work around this by saving the form as text,
   modifying the text version, and then reloading the form.

C. VCL

   More Windows 95 controls will be provided in a subsequent
   release, including TListView, TAnimation, THotKey, TStatusBar
   and others.

   Ole/OCX - Refer to the above section on Ole Support in this
   Release.

   By default, the huge strings directive {$H+} is enabled. VCL
   cannot be compiled with {$H-}. If you need to disable huge
   strings, we recommend doing so in your source code (instead of
   disabling Project|Options|Compiler|Huge Strings). Refer to
   online help for information about new string support.

   The THeaderControl is a preliminary implementation that does
   not use the Windows 95 common control. Some of the
   functionality of the Windows control is not available in this
   version. In addition, the resize logic for individual header
   sections does not contain any error checking (a section which
   is resized down to its smallest size will disappear).

   The TTrackBar control currently only surfaces an
   OnChange event.

   Edit masks - There are known problems with the TMaskEdit
   control that prevent correct data entry. These problems may
   also occur if you specify a non-empty EditMask property with
   TField components.

   16-bit Delphi projects that use the TDirectoryOutline
   component do not import correctly into Delphi32. You can fix
   the problem in TDirectoryOutline.CreateWnd by changing the IF
   statement on line 206 of
   \Borland\Delphi32\Source\Samples\DirOutln.pas to:

      if (not (csLoading in ComponentState)) and
        (csDesigning in ComponentState) then BuildTree;

   Then copy the modified DirOutln.pas file to your
   \Borland\Delphi32\LIB directory and select
   Component|Rebuild Library.

D. Integrated Debugger

   The integrated debugger is not yet completely implemented in
   this release. The following features are implemented:

     o Stepping and tracing
     o Breakpoints
     o Conditional Breakpoints (up to what the evaluator
       allows)
     o Program Pause
     o Program reset (terminate)
     o Watches (again, dependent upon the evaluator)
     o Call Stack

   Note that statements which appear in your source code but have
   no effect may be removed by the optimizing compiler. For
   example, assignments to variables where the new value is not
   used will be eliminated and a breakpoint on the line
   containing the assignment will be ignored.

   The expression evaluator does not yet support the following:

     o ProcedureName.Variable syntax
     o Evaluation of properties
     o Evaluating huge strings with very large lengths
       (greater than 32 KBytes)
     o Modifying values of huge strings {$H+}

   In addition, support for evaluating variables of type Variant
   is very preliminary.

   Debugging an application which calls the CreateProcess API is
   not yet supported.

   In the project source file (*.DPR), run to the end of the
   program instead of stepping over the last statement of the
   program to avoid an access violation in the debugger. For
   example, a default Delphi project's last program statement is
   Application.Run. Press F9 (Run|Run) instead of F8 (Run|Step
   Over) in order to execute this statement.

E. Borland Database Engine (BDE)

   The Borland Database Engine delivered with this version of
   Delphi32 is a field test version and is installed in
   \Borland\Common Files\Idapi.

   The ODBC support in this release is very preliminary and has
   not been thoroughly tested.

   Parameterized queries relying on TDateTime parameters may fail
   to find some records.

F. Running Under Windows NT 3.51

   Problems may occur when running an application that is located
   in the \Borland\Common Files\Idapi directory while Delphi32 is
   running. Copy BDECfg32.exe (and any other Idapi utilities you
   want to run) into the \Borland\Delphi32\BIN directory and run
   it from there.

   The Windows 95 shell provided with an unreleased beta version
   of NT is very preliminary. We recommend installing and running
   Delphi32 under native Windows NT only.

G. Compatibility with Delphi 1.0

   You can open a 16-bit Delphi project with Delphi32, but if you
   recompile under Delphi32 or save any changes, Delphi will
   place 32-bit resources in the project .RES file. You will no
   longer be able to load the project with 16-bit Delphi unless
   you delete the .RES file. This will be corrected in the next
   field test.

---------------------------End---------------------------------------
