***********************************************************
                DELPHI 4 RELEASE NOTES
***********************************************************

This file contains last-minute information about Delphi
4 and additional information that enhances the
usability of Delphi. We recommend you read this entire
file before using Delphi 4.

Unless otherwise noted, all materials provided in this
version of Delphi are copyright (C) 1983-1998 by INPRISE
Corporation.

TABLE OF CONTENTS
=======================================================

  1. WHERE TO FIND INFORMATION
     1.1 Information Files
     1.2 Online Resources
  2. CONTACTING INPRISE
     2.1 Installation Assistance and Developer Support
  3. CD-ROM AND INSTALLATION DIRECTORY OVERVIEW
     3.1 CD-ROM directories
     3.2 Installation Directories
  4. DEMO APPLICATIONS
  5. UTILITY PROGRAMS
  6. DOCUMENTATION
     6.1 Delphi 4 Help Files
     6.2 Online Version of Printed Documentation
     6.3 Help Updates
  7. BDE AND SQL LINKS
  8. KNOWN PROBLEMS


1. WHERE TO FIND INFORMATION
=======================================================
1.1 Information Files
---------------------
This file, README.TXT, contains release notes for
Delphi 4. See the file INSTALL.TXT (on the Delphi CD)
for information regarding installing Delphi,
uninstalling Delphi, and system requirements. See the
file DEPLOY.TXT for information on redistributing
Delphi applications. See LICENSE.TXT for information
on licensing allowances and limitations for Delphi 4
and other INPRISE software bundled with it. See the
online Help file DEL4NEW.HLP for new features in and
compatibility issues with Delphi 4.

For the Borland Database Engine (BDE) and SQL Links
(the latter only in the Client/server and Enterprise
editions of Delphi), the file BDEREADME.TXT contains
release notes. The file BDEDEPLOY.TXT contains infor-
mation on deploying BDE and SQL Links with appli-
cations. Both files are installed in the main BDE
directory.

1.2 Online Resources
--------------------
You can get information from any of these online
sources:

1.2.1 World Wide Web
--------------------
  Check INPRISE's Web site regularly. The Delphi
  Product Team will post white papers, competitive
  analyses, answers to frequently asked questions, sample
  applications, updated software, and information about new
  and existing products. You may want to check these URLs
  in particular:

  http://www.inprise.com/
    (Main INPRISE Web site)      
  http://www.inprise.com/delphi/
    (Delphi product information)
  http://www.inprise.com/devsupport/delphi/
    (Delphi Developer Support)
  http://www.inprise.com/devsupport/delphi/downloads/
    (Updated Help, software, and other files)
  http://www.inprise.com/delphi/cpp/
    (information for C++ programmers)
  http://www.inprise.com/delphi/vb/
    (information for Visual Basic programmers)
  http://www.inprise.com/newsgroups/
    (INPRISE-sponsored newsgroups, see below)

1.2.2 Newsgroups
----------------
  INPRISE sponsors a variety of newsgroups where users
  can exchange information about INPRISE development
  tools and their use. For a complete list and
  information on connecting to the INPRISE news server,
  see the page at the URL:
  
    http://www.inprise.com/newsgroups/

  In addition to the groups hosted by INPRISE, the
  following Usenet newsgroups are devoted to Delphi and
  related programming issues. (These newsgroups are
  maintained by users and are not official INPRISE
  newsgroups.)

    news:comp.lang.pascal.delphi.misc
    news:comp.lang.pascal.delphi.components
    news:comp.lang.pascal.delphi.components.misc
    news:comp.lang.pascal.delphi.components.usage
    news:comp.lang.pascal.delphi.components.writing
    news:comp.lang.pascal.delphi.databases
    news:comp.lang.pascal.delphi.advocacy
    news:comp.lang.pascal.delphi.announce
    news:alt.comp.lang.borland-delphi

1.2.2 FTP
---------
  ftp.inprise.com
  (Technical documents available by anonymous ftp.)

1.2.4 Listserv
--------------
  To subscribe to electronic newsletters, use the
  online form at:
    http://www.inprise.com/feedback/listserv.html
  or, for INPRISE's international listserver,
    http://www.inprise.com/feedback/intlist.html.

1.2.5 TECHFAX
-------------
  1-800-822-4269 (North America)
  (Technical documents available by fax.)


2. CONTACTING INPRISE
=======================================================
2.1 Installation Assistance and Developer Support
-------------------------------------------------
INPRISE offers a range of support services for Delphi 4
(and other tools). For information, see the World Wide
Web site for Delphi Developer Support at the URL:

  http://www.inprise.com/devsupport/delphi/

For assistance outside of North America, contact your
local INPRISE representative. For a list of offices and
distributors world-wide, see the page at the URL:

  http://www.inprise.com/bww/


3. CD-ROM AND INSTALLATION DIRECTORY OVERVIEW
=======================================================
3.1 CD-ROM directories
----------------------
The Delphi 4 CD-ROM includes the following files and
directories.

  [root]
  Contains files used for installation and registration
  as well as these important documents:

    INSTALL.TXT  Installation instructions.
    README.TXT   Release notes, last-minute
                 documentation, and a list of known
                 problems.
    LICENSE.TXT  The Delphi license agreement.
    DEPLOY.TXT   Information about deploying Delphi
                 applications.

  \DOCUMENTATION Contains PDF format copies of the
                 printed Delphi documentation.
  
  \EXTRAS        Contains extra bundled software.
  
  \IB5           Contains the InterBase 5.1.1 Server.
                 (Delphi Client/Server and Enterprise
                 only.)
  
  \INSTALL       Contains the Delphi 4 setup program
                 and related files.
  
  \ISEXPRESS     Contains InstallShield Express, a
                 customized application deployment tool
                 for Delphi 4, the BDE, and related
                 software.
  
  \OLENT         Contains OLEnterprise files.
  
  \RDEBUG        Contains the files to install the
                 Remote Debugger.
  
  \RUNIMAGE      Contains a complete Delphi
                 installation. All files are unpacked
                 and in the default directory
                 structure.
  
  \UPDATES       Contains updated files needed to use
                 Delphi 4, such as Windows system
                 files.

3.2 Installation Directories
----------------------------
These are the directories (and their contents) assoc-
iated with a full Delphi 4 installation. Some modules
do not come with all editions of Delphi and these are
noted where applicable. This file, DEPLOY.TXT, and the
Delphi documentation refer to files in their locations
relative to this default installation. Actual locations
may vary as the Delphi installation allows you to con-
trol where certain modules are installed.

  \Program Files\Borland\Delphi 4\Bin
    (Delphi system files)
  \Program Files\Borland\Delphi 4\Demos
    (Delphi demo programs, see "4. DEMO APPLICATIONS"
    below)
  \Program Files\Borland\Delphi 4\Doc
    (.INT files with object declarations for objects
    without source .PAS files and the BDE API)
  \Program Files\Borland\Delphi 4\Help
    (Delphi online Help files)
  \Program Files\Borland\Delphi 4\Imports
    (.DCU files for third-party products)
  \Program Files\Borland\Delphi 4\Lib
    (Delphi library files)
  \Program Files\Borland\Delphi 4\Objrepos
    (Object Repository)
  \Program Files\Borland\Delphi 4\Ocx
    (Third-party OCX files)
  \Program Files\Borland\Delphi 4\Slib
    (Debug versions of compiled source for use with
    debugging)
  \Program Files\Borland\Delphi 4\Source
    (VCL source .PAS files, in Professional edition and
    above)
  \Program Files\Borland\Delphi 4\Teechart
    (TeeChart documentation)
  \Program Files\Borland\Common Files\BDE
    (The Borland Database Engine system files; SQL
    Links system files, Client/server and Enterprise
    editions only)
  \Program Files\Borland Shared\Data
    (Sample dBASE and Paradox tables)
  \Program Files\Borland Shared\Debugger
    (The stand-alone debugger)
  \Program Files\Borland Shared\Images
    (Sample image files, button glyphs, splash screen
    images, more)
  \Program Files\Borland Shared\MSHelp
    (Microsoft SDK files)
  \Program Files\Borland Shared\SampleDictionary
    (Sample data dictionary)
  \Program Files\Borland\Database Desktop
    (Database Desktop utility)
  \Program Files\Borland\vbroker
    (CORBA support)
  \Windows\System32
    (Windows NT system files)


4. DEMO APPLICATIONS
=======================================================
Sample programs, including the ones listed below, are
installed with Delphi in the ..\Delphi 4\Demos\ direc-
tory. To build these demos, compile the appropriate
.DPR file. With client/server applications, be sure to
build and run the server program before building the
client.

  DelCtrls (in ...\ActiveX\Delctrls) includes standard
    Delphi components in an ActiveX control.

  PBag (in ...\ActiveX\PropBag) implements the
    IPersistPropertyBag interface in an ActiveX
    control, allowing the control's properties to be
    set through HTML tags.

  TRegSvr (in ...\ActiveX\Tregsvr) is a utility that
    registers ActiveX servers and type libraries.

  Webbrows (in ...\Coolstuf) uses the new TToolBar,
    TCoolBar, and TAnimate components in a Web browser.
    (Another Web browser, also called Webbrows, is in
    ...\Internet\Html.)

  HTTPDemo (in ...\Internet\HTTP) implements a web
    browser that retrieves the contents of a document
    from an HTTP server.

  Ftp (in ...\Internet\Ftp) is a File Transfer Protocol
    component that displays and manipulates files on an
    FTP server.

  EmpEdit (in ...\Midas\EmpEdit) uses TClientDataSet to
    create an editable employee table. The client
    application is in EMPEDIT.DPR and the server
    application is in SERVER.DPR.

  Project Manager (in ...\Midas\Mstrdtl) uses
    TClientDataSet and TProvider in a master/detail
    application.

  The projects in ...\Midas\SetParam illustrate the
    IProvider SetParams method.

  The projects in ...\Midas\Adhoc perform ad hoc
    queries using the provider's OnDataRequest event.

  ...\Midas\USQLProv shows a custom TProvider component
    that implements business rules.

  ...\Midas\ActiveFM contains an ActiveForm that uses
    client datasets.

  WebServ (in ...\Webserv) is an ISAPI Web-server
    database application that uses the new Internet
    components. The first Web page shows a list of
    customers and company names, with hypertext links
    to each company's Web page.

  NNTPDemo (in ...\Internet\Nntp) is a Usenet newsgroup
    browser.

  SimpMail (in ...\Internet\Smtp) is an SMTP/POP mail
    client.

  Chat (in ...\Internet\Chat) is an Internet Chat
    application that uses the Client and Server socket
    components.

  RichEdit (in ...\Richedit) demonstrates the TRichEdit
    control.

  ...\DEMOS\DB contains additional database sample
    projects. Data used by these examples is in the
    \Program Files\Borland Shared\Data directory.

  ...\DEMOS\DOC contains sample projects from the
    printed documentation.


5. UTILITY PROGRAMS
=======================================================
Delphi 4 comes with a number of helper, utility appli-
cations. These application programs serve a variety of
purposes, from debugging applications to working with
data tables. These utility programs include:

  Resource compiler
    BRCC32.EXE, in ..\Delphi 4\Bin
  Database Explorer
  SQL Explorer (Client/server & Enterprise editions)
    DBEXPLOR.EXE, in ..\Delphi 4\Bin
  Database Desktop
    DBD.EXE, in \Program Files\Borland\Database Desktop
  GREP
    GREP.EXE, in ..\Delphi 4\Bin
  Make utility
    MAKE.EXE, in ..\Delphi 4\Bin
  MTS installation (Client/server & Enterprise editions)
    MTSINST.EXE, in ..\Delphi 4\Bin
  Open Help
    OH.EXE, in ..\Delphi 4\Bin
  Package Component Editor
    PCE.EXE, in ..\Delphi 4\Bin
  SQL Monitor (Client/server & Enterprise editions)
    SQLMON.EXE, in ..\Delphi 4\Bin
  TDump
    TDUMP.EXE, ..\Delphi 4\Bin
  TRegSrvr
    TREGSRVR.EXE, ..\Delphi 4\Bin
  

6. DOCUMENTATION
=======================================================
6.1 Delphi 4 Help Files
-----------------------
The Delphi 4 on-line documentation consists primarily
of the following Windows Help files:

  File          Purpose
  ------------  -----------------------------------
  DELPHI4.HLP   Main Delphi Help
  DEL4COM.HLP   Developing COM-based Applications
  DEL4CW.HLP    Component Writer's Guide
  DEL4DAP.HLP   Developing Distributed Applications
  DEL4DBD.HLP   Developing Database Applications
  DEL4OP.HLP    Object Pascal Guide
  DEL4PROG.HLP  Programmer's Guide
  DEL4VCL.HLP   VCL Reference
  DEL4NEW.HLP   What's New and compatibility issues
  OPENHELP.HLP  Customizing Help

6.2 Online Version of Printed Documentation
-------------------------------------------
For your convenience, Acrobat versions of the document
ation (except the VCL Reference) are provided. Use the
provided Acrobat Reader to view the files. In addition
to the reader, the following files are provided:

  DG.PDF
  Acrobat version of the Developer's Guide.
  
  OBPG.PDF
  Object Pascal Guide and Object Pascal Help.
  
  QS.PDF
  Quick Start manual.
  
  READRTIP.PDF
  Tips for using the Acrobat Reader.
  
  STARTUP_DELPHI4.PDF 
  The main menu and start-up files. Use this file to
  access all other PDF files.

These Acrobat files are located on the Delphi 4 CD in
the \Documentation directory.

6.3 Help Updates
----------------
TCustomListView
---------------
TCustomListView.OwnerDataFetch has an undocumented
parameter: Request. The Request parameter specifies
which properties of the Item object the list view is
expecting to be filled-in. irText corresponds to
TListItem's Caption property, irImage to its Image
property, irParam to its Data property, irState to its
Cut, DropTarget, Focused and Selected properties, and
irIndent to its Indent property. The syntax prototype
should be:

  TItemRequests = (irText, irImage, irParam, irState,
    irIndent);
  TItemRequest = set of TItemRequests;

  function TCustomListView.OwnerDataFetch(Item:
    TListItem; Request: TItemRequest): Boolean; virtual;

Windows API Help
----------------
For the latest information on the Windows 32-bit API,
refer to the Microsoft Developer Network (MSDN) Web
site.

Quick Start Manual Errata
-------------------------
On page 3-6, step 4 says to set TDBGrid properties to
anchor the grid to the form and set the Constraints
subproperties AnchorHorz and AnchorVert to akStretch.
Correction: Anchors is a separate property and step 4
should direct you to set all Anchors subproperties 
(akLeft, akTop, akRight, and akBottom) to True.

Page 5-7 states incorrectly refers to package files
using the extension .DPL; should be .BPL. Also, on the
same page, there is a reference to the file VCL30.DPL;
this should be VCL40.BPL instead.


7. BDE AND SQL LINKS
=======================================================
See BDEREADME.TXT (in the BDE directory) for release
notes for the Borland Database Engine (BDE) and SQL
Links (the latter only available with the Client/server
and Enterprise editions of Delphi).

See BDEDEPLOY.TXT (in the BDE directory) for specific
information regarding redistributing the BDE and SQL
Links with Delphi applications.


8. KNOWN PROBLEMS
=======================================================
Packages and ISAPI DLLs
-----------------------
The ISAPI/NSAPI WebModule-based DLL's cannot be used
when compiled with packages. Workaround: remove inet30
and inetdb30 BPLs from the project.

InterBase Installation
----------------------
Because the interbase install does not remove registry
entries and services completely, an error will be seen
at the next reboot after uninstall: "Unable to start
one or more services".

MTS
---
ITransactionContextEx.Abort does not abort changes.

Also: after CoInitialization/CoUninitialization have
been called, CoInitialization cannot be called again.
Once CoUninitialization has been called, your applica-
tion no longer executes in the MTS runtime environment.

There is a known problem with using the client
CreateTransaction/CreateTransactionEx mechanism for
controlling MTS transactions. The BDE is not reenlisted
once a transaction is committed or rolled back.
Workaround: you must:

  1. On the client side, call CreateTransaction and
     ITransaction.CreateInstance after each commit or
     rollback.
  2. On the server side, close and reopen the database
     for each commit or rollback.

Oracle 8
--------
Connect and reconnect to Oracle 8 table which contains
ADT with BLOB fields and index on ADT field can cause
Delphi to crash.

The following tools do not include support for Oracle 8
object field types:

  DBD32
  DataPump
  QR
  TChart
  DataSetTableproducer and QueryTableproducer
  SQLBuilder
  DecisionCube components
  Data dictionary
  Database explorer

COMCTL32.DLL Versions
---------------------
Using an older version of COMCTL32.DLL than is
installed with Delphi 4 will cause problems with
components like Cool Menus and TToolButton. Installing
some programs (like Microsoft Internet Explorer 3.02)
will cause COMCTL32.DLL to be overwritten with an older
version. Use the update program 40COMPUPD to replace it
with the later version and prevent these problems.

Code Browser
------------
Some default key combinations may conflict with key
combinations defined in alternate Editor SpeedKey
settings. For example, Shift+Ctrl+UpArrow conflicts
with SpeedKey a key combination for Brief and Epsilon.

CORBA/OSAGENT.EXE
-----------------
The OSAGENT.EXE needs a -C flag when run from a console
under NT. Without the flag the application will term-
inate in 10 seconds.

DisableControls Method
----------------------
Normal behavior note. The DisableControls method will
also disable active Master-Detail links. Also, if you
set BlockReadCount instead of calling DisableControls,
then only the detail datasets get updated as you scroll
through the dataset, not data-aware controls. Affects
all components that can effect Master-Detail links and
can use DisableControls.

TChart/DbChart
--------------
Changing a primary index field to a duplicate value
(key violation) and then hitting the Escape key moves
the active record off of the record that was just being
modified if a TDBChart is hooked to the same table. A
workaround is to use two events of the dataset:

  Var   bb:TBookMark;

  procedure TForm1.Table1AfterPost(DataSet: TDataset);
  begin  { go to current record... }
    Table1.GotoBookMark(bb);
    Table1.FreeBookMark(bb);
  end;

  procedure TForm1.Table1BeforeEdit(DataSet: TDataset);
  begin  { get current record... }
    bb:=Table1.GetBookMark;
  end;

Packages
--------
If you have created your own design-time packages, they
must be rebuilt under Delphi 4 before they can be
installed into Delphi 4.

The package format has been changed in order to
identify the producer of a package (C++Builder 3,
Delphi 3, Delphi 4, etc.). Any user packages built with
earlier versions will not be installable (until
rebuilt) because they do not contain this information.

Constraints/Persistent Fields/TClientDataSet
--------------------------------------------
Constraints on persistent fields for a TClientDataSet
are ignored. To use constraints with a TClientDataSet,
place them on a TTable or TQuery that the TProvider
uses to populate the TClientDataSet.


=======================================================
Unless otherwise noted, all materials provided in this
release are Copyright 1983 - 1998 by INPRISE
Corporation.
======================= END ===========================

