                        Welcome to Delphi
                        -----------------

This README file contains important, last minute information
about Delphi and Delphi Client/Server. Carefully review
INSTALL.TXT before you install Delphi. In addition, there are
separate READ????.TXT files in the RPTSMITH, IBLOCAL, IDAPI and
DBD directories. Errata for the documentation can be found in
\DELPHI\DOC\MANUAL.TXT.

Note that all printed and online documentation assume that you
have installed Delphi using the default directory structure.

In addition to the above, there are several files in the
\DELPHI\DOC directory that you should browse. See FILELIST.DOC on
your CD in the \INSTALL\DISK1 directory or on DISK1 of your
floppies for a complete list of all files distributed with this
package.

IMPORTANT: For license information on deploying Delphi and Delphi
Client/Server applications and for a list of redistibutable
files, refer to DEPLOY.TXT in the \DELPHI directory.

TABLE OF CONTENTS
-----------------
 1. Minimum system requirements
 2. How to get help
 3. Installation
 4. Product Overview
 5. Demonstration programs
 6. Release notes


1. MINIMUM SYSTEM REQUIREMENTS
------------------------------
Delphi requires Windows 3.1 or a 100% compatible operating
system, an 80386 or newer processor (486 recommended), and 6Mb of
system memory (Delphi Client/Server requires 8Mb, 12Mb or more is
recommended for Client/Server development). A minimum
installation requires approximately 30Mb of disk space (a full
installation of Delphi Client/Server requires approximately
80Mb).

DCC.EXE, the DOS command-line compiler, requires at least 1Mb of
extended memory.

Delphi has been tested under Windows 3.1, Windows for Workgroups
3.11, Windows NT 3.5, OS/2 Warp, and the latest pre-release
version of Windows 95. Note that we do not recommend large-scale
deployment of database applications running under Windows 95
until Microsoft certifies a release for commercial use.


2. HOW TO GET HELP
------------------
If you have any problems with this product, please read this
file, the online documentation files in \DELPHI\DOC, the online
help files, and the Delphi manuals first. If you still have a
question and need assistance, help is available from the
following sources:

1. You can use your modem to easily obtain assistance online.
   Borland maintains support forums on CompuServe.  These forums
   put you in contact with Borland technical support engineers
   and thousands of programmers using Borland products. You'll
   be able get your questions answered and share information
   and ideas with others.

   You can also download the latest technical information, sample
   code, utilities, patches, etc., from these online services as
   well as from Borland's Download Bulletin Board Service
   (DLBBS).

   Access Borland's online services in the following manner:

   CompuServe
     GO BORLAND

   World Wide Web
     Browse the Delphi WWW page (http://www.borland.com) to find
     tips and techniques, the latest Delphi book list, links to
     other Delphi pages, newsgroups, and other references.

   Borland DLBBS
     You can reach the Borland DLBBS by dialing (408) 431-5096
     (up to 14,400 Baud, 8 data bits, No Parity, 1 Stop bit). No
     special setup is required.

2. TechFax is a toll-free, 24-hour automated service that sends
   free technical information to your fax machine. More than
   1,000 documents discussing Borland software are available
   through TechFax. These documents provide valuable technical
   reference information.

   You can obtain TechFax bulletins or documents by calling
   1-800-822-4269 from any touch tone telephone.

3. For information about installation, system configuration, and
   compatibility, call the Technical Support Hot Lines at (408)
   461-9195 from 6:00 am to 5:00 pm Pacific Time.

4. If you need an advanced level of support, Borland offers
   the Advisor Lines service where you can get advice on program
   design, debugging, and performance tuning. Advisor Lines
   operate from 8:00 am to 5:00 pm Pacific Time at
   1-900-555-1015. Each call is $2.00/minute, with the first
   minute free (available in U.S. only). If you wish to pay for
   this service using a credit card, call 1-800-330-3372.

When calling Borland's Technical Support, please keep your
manuals handy and have the program in question running. To
simplify trouble-shooting, be prepared to provide the following
information:

  o Product name and serial number

  o Computer name and model and the name and model of any
    additional hardware (video adapters, modems, etc.).

  o Operating system and version number (to obtain the version
    number, type VER at the commandline prompt). In Microsoft
    Windows, you can find the version number by selecting
    Help|About from Program Manager.

  o The contents of your AUTOEXEC.BAT and CONFIG.SYS files
    (located in the root directory your computer's boot
    drive).

  o The contents of your WIN.INI and SYSTEM.INI files (located in
    your \Windows directory).

  o A daytime phone number where you can be reached.

  o The specific steps necessary to reproduce the problem you
    area experiencing.


3. INSTALLATION
---------------
Please refer to the file INSTALL.TXT on your CD in the
\INSTALL\DISK1 directory or on DISK1 of your floppy disk set
for complete installation instructions.

To start the installation, run the SETUP.EXE program on your CD
in the \INSTALL\DISK1 directory or on the floppy disk labeled
DISK1.


4. PRODUCT OVERVIEW
-------------------
Delphi's visual design environment lets you create sophisticated
Windows applications faster than any other development tool.
Because Delphi is built around and optimizing native code
compiler, Delphi applications are up to 10-20 times faster than
interpreted code.

Delphi integrates the Borland Database Engine, so you have
instant support for dBase, Paradox, and ODBC local databases.

Delphi includes the Local InterBase Server so you can create
standalone client/server applications with a high-performance
ANSI SQL-92 compatible database server.

Delphi also includes Borland's award-winning ReportSmith report
writing tool, which allows programmers to prepare innovative
reports using live data in all popular database formats.

Delphi Client/Server includes all of Delphi plus high performance
native drivers for Oracle, Sybase, Microsoft SQL Server, Informix
and InterBase remote servers with unlimited application
deployment. You also get team development support, ReportSmith
SQL, a Visual Query Builder, source code to the Visual Component
Library (VCL), and the Local InterBase Server Deployment Kit.


5. DEMONSTRATION PROGRAMS
-------------------------

Here's an overview of the example programs, libraries and
components located in the \DELPHI\DEMOS directory:

\DELPHI\DEMOS
  \DB - Contains all database sample projects. Data used by these
        examples is in the \DELPHI\DEMOS\DATA directory. The
        SETUP program creates a BDE alias called DBDEMOS which
        can be used to access this data. Refer to INSTALL.TXT for
        additional information. (DBG=Database Application
        Developer's Guide)

    \ANIMALS  - Uses TBlobField type to access dBASE data.
    \BDEDLL   - DLL that uses database components and a
                companion application.
    \CALCFLDS - Simple use of calculated fields with linked
                master/detail tables.
    \DATALIST - Dynamically retrieves lists of aliases, tables,
                fields and indexes.
    \DBAWARE1 - Simple use of TDBEdit, TDBListBox, TDBComboBox
                and TDBGrid.
    \DBAWARE2 - Simple use of TDBLookupCombo and TDBLookupList.
    \FISHFACT - Uses TBlobField and TMemoField to access
                Paradox data.
    \FORMAT   - Simple use of FormatDateTime and FormatFloat.
    \INSQUERY - Simple use TQuery to perform SQL insert.
    \LINKQRY  - Master/detail form using TQuery components.
    \MASTAPP  - Extensive example featured in Chapter 2, 4, and
                Appendix D of the Database Application
                Developer's Guide. Consists of 12 forms and comes
                with sample data for Paradox and Local InterBase
                Server. Uses ReportSmith to print invoice,
                inventory and customer data; includes online help
                that explains how the application is implemented;
                contains a sophisticated invoice form, and is
                fully scalable between desktop and Client/Server
                data. Refer to the comments at the beginning of
                MAIN.PAS for more complete information.
    \QJOIN    - Simple SQL join.
    \RANGE    - Simple use of TTable range support.
    \SEARCH   - Simple use of TTable.SetKey.
    \STOCKS   - Stock portfolio example that uses complex SQL
                joins, ReportSmith reports and the TChartFX
                sample VBX control.
    \TOOLS    - Two applications: an MDI database browser and a
                SQL Activity Monitor.
    \TWOFORMS - Simple example that shows how multiple forms
                can share a single dataset (DBG, Ch. 3).

  \DOC - Contains examples from the printed documentation
         (UG=User's Guide, CWG=Component Writer's Guide).

    \ABOUTBOX - AboutBox dialog (UG Ch. 2).
    \CALENDAR - TSampleCalendar component (CWG Ch. 11).
    \CBROWSE  - Uses TSampleCalendar (CWG Ch. 11).
    \DATAEDIT - Read/write data aware TCalendar (CWG Ch. 12).
    \DBCAL    - Read-only data aware TCalendar (CWG Ch. 12).
    \FILMANEX - File manager (UG, Ch. 13).
    \FORMCOMP - Encapsulates a form as a component (CWG, Ch. 13).
    \FORMDLL  - Encapsulates a form as a DLL (CWG, Ch. 13).
    \GRAPHEX  - Simple paint program (UG, Ch. 12).
    \OLE2     - MDI OLE2 container (UG, Ch. 15).
    \SHAPE    - TSampleShape component (CWG, Ch. 10).
    \TEXTEDIT - Simple MDI text editor (UG, Ch. 10).
    \WRAPMEMO - TWrapMemo component (CWG, Ch. 9).

  \CALLDLL    - A simple password form in a DLL and a test program
                that calls it.
  \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.
  \DDEDEMO    - Uses DDE to create a group in Program Manager.
  \DRAGDROP   - Two projects that demonstrate drag and drop.
  \DYNAINST   - Dynamically creates components at run-time.
  \EXPERTS    - Source for the application and dialog experts
                (access via the Project and Form expert gallery
                pages).
  \FILECTRL   - Uses the file and directory controls.
  \GENERIC    - Object Pascal version of the "generic" SDK app.
  \IMAGVIEW   - Views and browses images (BMPs, WMFs, etc.).
  \OLE2       - Links and embeds OLE2 objects.
  \OWNERLST   - Uses an owner-draw listbox.
  \PAGECTRL   - Integrates the TNotebook and TTabSet components.
  \PROPEDIT   - Component with accompanying property editor.
  \SCRIBBLE   - A simple drawing program in only 3 lines of code.
  \TEXTDEMO   - Uses TFindDialog and TReplaceDialog components.
  \USERHELP   - Shows how to implement and register online help
                for a custom component.


6. RELEASE NOTES
----------------
Make sure you read \DELPHI\MANUALS.TXT for late-breaking
information and documentation errata. INSTALL.TXT contains
information about installation problems. Refer to INSTALL.TXT if
you're having problems connecting to an SQL database, printing a
ReportSmith report from a Delphi application, and so on.

ChartFX - This 3rd party sample component can be found with the
other VBX control examples on the Component Palette's VBX page.
Refer to the ChartFX interface file (\DELPHI\DOC\CHARTFX.INT) to
augment the online documentation. (Delphi Client/Server edition:
refer to \DELPHI\SOURCE\LIB\CHARTFX.PAS.) You can also find a
sample project that uses this component in the
\DELPHI\DEMOS\DB\STOCKS directory.

Interactive Tutors - We recommend that you run the tutors using
Delphi's default configuration. For more information, please see
the "Configuring Delphi for Interactive Tutors" topic in Delphi
Help. If you experience problems running the Interactive Tutors,
try closing other Windows applications to free up system memory.
Note that the Interactive Tutors are not available under Windows
NT 3.5.

COMPLIB.DCL - Whenever you rebuild the Delphi component library,
Delphi always copies the previous .DCL to a backup file named
COMPLIB.~DC. If a newly installed Delphi component causes an
error during initialization or you experience other difficulties
with COMPLIB.DCL when loading Delphi, you can restore the
previous version by exiting Windows and copying COMPLIB.~DC to
COMPLIB.DCL.

DATABASE NOTES
--------------
Closing ReportSmith Run-time from a Delphi application - When
ReportSmith run-time is loaded by a TReport component,
TReport.AutoUnload is False and your application is terminating,
you'll need to call TReport.CloseReport explicitly to unload
ReportSmith:

  procedure TForm1.FormClose(Sender: TObject;
    var Action: TCloseAction);
  begin
    Report1.CloseReport(False);
  end;

TTable.CreateTable - The TTable.CreateTable function does not
support the Paradox formatted memo field type.

Queries with BCD Parameters - (Paradox tables only) Substitution
parameters that are of type BCD should be bound using floating
point data types (not BCD).

Using Database components in a DLL - Certain restrictions apply
when a DLL uses database components. In particular, such a DLL
can only be used by one client at a time. It is the
responsibility of the DLL to prevent simultaneous access by
multiple applications. In addition, a DLL that uses database
components should provide startup and cleanup routines to ensure
safe initialization and shutdown. Refer to the
\DELPHI\DEMOS\DB\BDEDLL directory for an example of a DLL that
uses database components and a companion application.

SQL Database floating point precision - Servers that support a
single-precision floating point type typically offer only seven
significant digits. If no TField.DisplayFormat is specified and
the precision of the underlying field is less than 15 digits, you
should set the TField.Precision property accordingly.

Additional information about updateable SQL queries:
  o The online help on Syntax Requirements for a Live Result Set
    should state that ORDER BY clauses are allowed in updateable
    queries.
  o The online help on Syntax Requirements for a Live Result Set
    incorrectly states that a unique index must exist on Sybase
    servers. Only the original column values implied by the
    setting of TQuery.UpdateMode must be unique.
  o All Oracle column names are case sensitive (as if they were
    quoted explicitly). Oracle table names are never quoted (and
    thus must be uppercase).
  o Quoted columns must be prefixed with a table alias.
  o Tables owned by another user must be qualified by owner name.
    Use quotes around the entire qualified name, for example
    "OWNER.TABLE".

Dataset synchronization on SQL Databases - Whenever supported by
the server, Delphi supports inserts against updateable queries,
views, non-indexed Sybase and InterBase tables. However, a newly
inserted record is not present in the current cache (dataset)
when it is no longer the current record. The table must be
reopened or the query executed again to refresh the cache and
retrieve the inserted record.

Informix SQL Link - Due to Informix 4.x restrictions, only one
application instance can be connected to one server at a time. To
help circumvent this problem, we recommend that you set the
TDatabase.KeepConnections property to False when accessing
Informix databases. Close all active connections at design time
before running the application.

The Borland Database Engine (BDE) looks for the IDAPI.CFG
configuration file which contains driver and alias information
used by all BDE client applications. The SETUP program creates
and places a copy of IDAPI.CFG in the \IDAPI directory. We
recommending backing up your IDAPI.CFG file periodically. You can
also create a new one by copying from the IDAPI.CNF file in the
\RUNIMAGE\IDAPI directory on your CD-ROM (or, if you're
installing from floppy disks, from the indicated .PAK file listed
in FILELIST.DOC ), for example:

  copy D:\RUNIMAGE\IDAPI\IDAPI.CNF C:\IDAPI\IDAPI.CFG

Note that other .CNF files are provided as well and may be merged
using the BDECFG.EXE utility's merge facility. Once you've
created a new IDAPI.CFG file, you can use BDECFG.EXE to create
aliases and drivers. For example, assuming you've installed
Delphi on your C: drive, here's how to create the DBDEMOS alias
that is normally created by the SETUP program:

  1. Click on the Database Engine Configuration icon in the
     Delphi Program Manager group.
  2. Select the Alias page and click the New Alias button.
  3. Enter DBDEMOS and press the OK button.
  4. Click on the path in the Parameters entry box and specify
     C:\DELPHI\DEMOS\DATA
  5. Select File|Save

Now this alias is available to Delphi's data access components
(TTable, TQuery, etc.).

Systems Notes
-------------
Video Drivers - Some older versions of the Dell/TSeng ET4000
video driver, when operated in high-color modes, fail to properly
paint the multiselect rectangle while dragging. In addition, some
older ATI video drivers contain spurious INT 3 breakpoint
instructions which interfere with Windows debugging. If you
experience either of these problems, contact your vendor for an
updated driver.

Embedding or linking an Excel object - When embedding Excel in a
TOleContainer component, a known problem in Excel reduces its
scaling factor each time the object is activated.

DPMI utilities and other operating systems - DCC.EXE, the DOS
command-line compiler, and DLIB.EXE, the library utility for
DELPHI.DSL, both use DPMI services provided by RTM.EXE. RTM.EXE
requires at least 1Mb of extended memory. When running under
Windows NT 3.5, add the following line to your
\WINNT\SYSTEM32\CONFIG.NT file:

  ntcmdprompt

When running DCC or DLIB in an OS/2 DOS session, set DPMI_DOS_API
to Enabled.

Cannot Optimize EXE errors - When the Optimize EXE for size and
speed option is enabled on the Options|Project|Linker page, you
may encounter a "disk full" error during compilation. If this
error occurs and you have sufficient disk space, disable the
Linker page option and use the command-line utility instead:

  \delphi\bin\w8loss project1.exe

Program Reset - Windows support for debugging does not always
make it possible for Delphi to shutdown a running application and
recover all system resources that were allocated. When possible,
terminate your running application normally instead of using
Debug | Program Reset. This is especially important when an
exception has occurred in your application. If you do use Program
Reset, you may be bypassing some of your application's shutdown
code. You may need to periodically exit and then restart Windows
to recover resources which were allocated but not released.

CANNOT CREATE PROCESS Error - There are two possible causes for
this error.

  o Your application requires a DLL which cannot be located

  o Insufficient low DOS memory - Windows requires a minimum
    amount of conventional DOS memory in order to launch an
    application. If available conventional 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 Exit all BDE client applications (e.g. Delphi), run the
        BDE Configuration utility (BDECFG.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.

    IMPORTANT: This error should occur on very few systems and is
    generally due to problems with system configuration or other
    Windows software.


BP 7.0 Compatibility Notes
--------------------------
o Passing Borland Pascal 7.0 style object variables as arguments
  in an open array constructor is not supported.

o Don't use the Borland Pascal 7.0 Fail procedure with Delphi
  classes.

o Though we do not recommend using ObjectWindows and VCL units
  in the same application, by following these instructions, you
  can easily work on your Borland Pascal 7.0 Windows projects in
  the Delphi development environment:

  1. Open your program or library file as a project. Make sure
     there's a correct module header declaration (i.e. program,
     library or unit) at the beginning of the .PAS file.

  2. Change the Search Path on the Options|Project|Directories
     page to include \DELPHI\SOURCE\RTL70.

  3. Update the uses clause of each unit as follows:

     o For each unit that uses WinTypes, replace "WinTypes" with
       "Messages, WinTypes"
     o Remove all references to the Win31 unit
-----------------------------------------------------------------
