Documente Academic
Documente Profesional
Documente Cultură
CONTENTS
===============================================
-- INSTALLATION NOTES
(READ BEFORE CONTINUING)
-- OTHER RELEASE NOTES
INCLUDED WITH THIS PRODUCT
-- ABOUT EDITING THE REGISTRY
-- THIRD-PARTY PRODUCT NOTES
AND KNOWN ISSUES
-- DELPHI 5 KNOWN ISSUES
-- ADDITIONAL COMPATIBILITY NOTES
-- ONLINE HELP OMISSIONS,
CORRECTIONS, AND CLARIFICATIONS
-- DOCUMENTATION USAGE NOTES
-- DELPHI ON THE WEB
INSTALLATION NOTES
===============================================
The following items describe known issues,
behavior, and functionality that can affect
installation of this product. For other
installation issues, including how to remove
the product, see the file INSTALL.TXT at the
root of your CD.
Minimum system requirements
-----------------------------------------------
* Intel Pentium 90 or higher (P166 recommended)
* Microsoft Windows 95, 98,
or NT 4.0 with Service Pack 3 or later
* Memory: 32MB of RAM (64MB or more recommended)
* 80MB hard disk space (Compact install)
* CD drive
* VGA or higher resolution monitor
* Mouse or other pointing device
* Networks supported: Any Microsoft Windows
95, 98, or Windows NT or higher compatible
network
If you've installed Delphi before
-----------------------------------------------
You can install to the same machine (though to
a different location) as another version of the
product. If you want to install to the same
directory as an existing version, uninstall the
existing version first. In either case, you
should back up your IDAPI.CFG file (if one is
present) and any other important data, including
existing projects that you intend to use with
this version.
Uninstall Internet Control Pack
-----------------------------------------------
If you have installed any previous release of
the Microsoft Internet Control Pack, uninstall
that version before installing Delphi.
Installing from a network or shared drive
-----------------------------------------------
If installing from a network or shared drive,
you must map a drive letter to the server and
folder that contains the INSTALL.EXE program
that initiates installation of this product.
Windows 98 users: The directory Browse button
may cause the installation to halt
----------------------------------------------
If installing under Windows 98 with Microsoft
Client for NetWare Networks and the Microsoft
Service for NetWare Directory Services (MSNDS)
network clients:
Installation may exit or stop with a fatal
error message if you click the Browse button
on the directory selection dialog.
Workaround: If you choose not to install to
the default directories, type your directory
choices into the dialog fields, rather than
clicking Browse.
For more information on this problem, see the
following technical articles at the InstallShield
and Microsoft sites:
Search for article Q192249 at:
http://support.microsoft.com/search/default.asp
Search for article Q102400 at:
http://support.installshield.com
InstallShield and Microsoft Outlook 98
--------------------------------------
If Outlook 98 is running when you install Delphi,
InstallShield will hang. We strongly recommend
that you close Outlook 98 and all other Windows
programs before installing Delphi.
Performing a Custom installation
-----------------------------------------------
To conserve disk space, you can perform a custom
installation, selecting only the options you
require. To do so, select the Custom radiobutton
in the Setup Type dialog during installation. Disk
space required for the total custom installation
and individual options is displayed as you select
or deselect options.
Among the options is to install Registry keys only.
This option can be used to repair keys damaged as
a result of a computer crash or to set up sets of
registry keys for different user profiles.
During a Custom install using registry keys only,
you may select to install minimal files. These are
files in the Windows system directory; the option
installs the files and defines the registry keys.
Just-In-Time Debugging
-----------------------------------------------
During installation, you have the option of
updating your Just-In-Time Debugger registry
settings.
If you choose to update your registry, changes
are made to the key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows NT\CurrentVersion\AEDebug\Debugger
The key is changed to:
C:\Program Files\Borland\Delphi\bin\
bordbg50.exe -aeargs %ld %ld
(where C:\Program Files\Borland\
is the installation directory)
If you do not perform the update during
installation, you get a second chance to update
the registry at program startup. The Just-In-Time
Debugger automatically starts when any program
running on your computer fails. Just-In-Time
debugging and distributed debugging will not work,
however, unless this registry setting is updated.
If you want to preserve your existing AEDebug
settings in case you want to change them back
at a later date, you must follow these steps
BEFORE updating the registry settings:
1. Run Regedit.
2. Select the AEDebug key (noted above).
3. Choose Registry | Export Registry File.
4. Name and save the file containing the AEDebug key.
To restore the AEDebug settings you can:
1. Run Regedit.
2. Choose Registry | Import Registry File.
3. Specify the file in which you saved the AEDebug key.
TQueryTableProducer
-----------------------------------------------
Topic title/keyword: TQueryTableProducer
Limitation note:
TQueryTableProducer works only with TQuery
components. It does not work with TAdoQuery or
TIBQuery.
TAppletModule
-----------------------------------------------
Topic title/keyword: TAppletModule
Events link is missing. To view Help for
events, search "TAppletModule" in the Help
Index. Events (OnActivate, OnInquire,
OnNewInquire, OnStartWParms, OnStop) are listed
along with the object's properties and methods.
Omission: Component Writer's Guide
-----------------------------------------------
Topic title: How do you create components?
Keyword: Creating components
Problem: Missing table
Missing table data:
To: Modify an existing component
Start with this type: Any existing component,
such as TButton or TListBox, or an abstract
component type, such as TCustomListBox
To: Create a windowed control
Start with this type: TWinControl
To: Create a graphic control
Start with this type: TGraphicControl
To: Subclass a Windows control
Start with this type: Any Windows control
To: Create a nonvisual component
Start with this type: TComponent
Clarification: Debugger services
-----------------------------------------------
Topic title: Debugger services
Keyword: service applications, debugging
Step 2 of this topic describes adding a
registry subkey with the full path to the
debugger as the string value, but does not
actually specify the path. The value is:
C:\program files\borland\delphi5\bin\delphi32.exe
Note that "C:\program files\borland\delphi5"
is the default installation folder; if you
installed to a different location, modify the
string as needed.
Error: Code snippet won't compile
-----------------------------------------------
Topic title: Reading and writing strings
Keyword: Strings
The code snippet:
var
fs: TFileStream;
s: string = 'Hello';
should be written as:
var
fs: TFileStream;
const
s: string = 'Hello';
Correction in example topic: ContentType,
ContentStream, SendResponse example
-----------------------------------------------
Accessible from example links in VCL topics:
TISAPIResponse.ContentType,
TISAPIResponse.SendResponse,
TCGIResponse.ContentType,
TCGIResponse.SendResponse,
TWebResponse.ContentStream,
TWebResponse.ContentType,
TWebResponse.SendResponse
The example topic noted above is incorrect in the
online Help file. The corrected code appears
below.
Note: This code segment is part of the
IServer demo project you'll find at
/demos/webserv. The corrected code can be found
in the MAIN.PAS file in that directory.
procedure
TCustomerInfoModule.CustomerInfoModuleGetImageAction
(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
var
Jpg: TJpegImage;
S: TMemoryStream;
B: TBitmap;
begin
Jpg := TJpegImage.Create;
try
B := TBitmap.Create;
try
B.Assign(BioLifeGraphic);
Jpg.Assign(B);
finally
B.Free;
end;
S := TMemoryStream.Create;
Jpg.SaveToStream(S);
S.Position := 0;
Response.ContentType := 'image/jpeg';
Response.ContentStream := S;
// do not free the stream because the response
// object will handle that task.
finally
Jpg.Free;
end;
end;
Correction: AutoHotKeys property value
-----------------------------------------------
[WHATSNEW.HLP]
Topic title: Miscellaneous VCL Enhancements
Keyword: VCL,enhancements
Detail:
The topic section "New Help hint and menu features"
states, "Setting the AutoHotKeys property to True
causes the menu to maintain hot keys...remove
duplicate hot keys, and add unique hot keys...."
Correction:
The property value should be maAutomatic, NOT True.
Correction: ValidHotkeys variable
should be ValidMenuHotkeys
-----------------------------------------------
Topic title/keyword: ValidHotkeys variable
Correction: The correct variable name is
ValidMenuHotkeys.
TRegistry.Access enhancement
not noted in "What's New"
-----------------------------------------------
Topic title: TRegistry.Access
Keyword: TRegistry,Access
Detail: TRegistry.Access is a new property that
specifies the level of access to use when
opening keys with TRegistry, TRegistryIniFile,
or TRegIniFile objects. Among the advantages
to using the Access property with those objects
is the ability to read HKLM on Windows NT
machines without Administrator privileges.
See the TRegistry.Access topic for additional
information.
Undocumented: ESafeCall exception
-----------------------------------------------
ESafeCall is raised when a routine has the
safecall calling convention but the application
can't provide the necessary error-handling. For
example, ESafeCall is raised when safecall is
used on a method that is not part of a dual
interface.
If you see this exception, you should either
use the ComObj unit--which handles safecall
correctly--or simply consider not using safecall.
Correction to example in topic:
Supporting state information in remote data modules
-----------------------------------------------
Topic keyword:
incremental fetching, stateless data modules
Corrected code (with changes noted):
TDataModule1.ClientDataSet1BeforeGetRecords(
Sender: TObject; var OwnerData: OleVariant);
var
CurRecord: TBookMark;
begin
with Sender as TClientDataSet do
begin
if not Active then Exit; //added
CurRecord := GetBookmark;
{ save the current record }
try
Last; {locate the last record in the new packet }
OwnerData := FieldValues['Key'];
{ Send key value to the application server }
GotoBookmark(CurRecord);
{ return to current record }
finally
FreeBookmark(CurRecord);
end;
end;
end;
TRemoteDataModule1.Provider1BeforeGetRecords(
Sender: TObject; var OwnerData: OleVariant);
begin
with Sender as TDataSetProvider do // was TProvider
if not VarIsEmpty(OwnerData) then //added
if DataSet.Locate('Key', OwnerData, []) then
DataSet.Next; //added
end;
Comment:
The key elements that distinguish this code from
the example in the Help file are the Active check
on the client, the unassigned variant check
on the provider, and the call to move next past
the located value (without which the last record
of the previous fetch is fetched instead).
===============================================
Copyright (c) 1999 Inprise Corporation.
All rights reserved.