Delphi 2005 Release Notes
This file contains important supplementary information that may not appear
in the main product documentation. Borland recommends that you read this file
in its entirety.
For information about installation, deployment, and licensing issues, see the
Install, Deploy, and License files located, by default, at C:\Program Files\Borland\BDS\3.0.
Contents
General Notes
- Delphi 2005 is certified on Windows XP with Service Pack 2 installed.
- On startup, the IDE verifies that the value specified for the Package
output directory option (Tools > Options > Delphi Options>
Library - Win32) is on the system path. If it is not, the IDE prompts
you to add it to the path. Windows limits the system path to 1024 characters.
If adding the package output directory causes the system path to exceed this
limit, the IDE will continually prompt on startup, indicating that the path
needs to be added. If you encounter this issue, either edit your system path
to shorten it, or uncheck Always perform this check on startup
on the prompt dialog. Windows XP Service Pack 2 increases the path size limit
from 1024 to 2048 characters, so in some cases, installing the latest service
pack may also fix this problem.
- The Component > Install Component command has been removed
from the main menu. To install a component from source, create a new package,
add your source files to it, and install it using Component> Install
Packages, or open the dclusr package and add your source files.
- project_tlb.pas files cannot be opened from the context menu in
the Project Manager. Instead, select the file in the Project Manager and use
View > Type Library.
- When working with imported WinForm controls in VCL for .NET applications,
public properties can be accessed directly in code. Properties that are not
public in the imported wrapper can be accessed via the Control property of
the imported control. For example:
Self.ImpCheckBox1.Checked := true;
Self.ImpCheckBox1.Control.BackColor := System.Drawing.SystemColors.Desktop;
The ControlText property is visible at design time, but not at run time. As
with other properties this can be set in code. For example:
procedure TForm1.FormCreate(Sender: TObject);
begin
ImpButton1.Control.Text:='Test'
end;
- Compiling a Delphi 8 Windows Form application that has a dotted unit name,
such as Foo.WinForm33.pas, may result in the error
E1026 File not found:
'Foo.WinForm33.TWinForm33.resources'
. To correct this do one of the
following:
- View the project source (Project > View Source),
and change the line:
{$R 'Foo.WinForm33.TWinForm33.resources' 'Foo.WinForm33.resx'}
to:
{$R 'Foo.TWinForm33.resources' 'Foo.WinForm33.resx'}
or
- Add a temporary new file to the project and the IDE will correct the
problem.
- When importing .NET Assemblies as COM objects for use in Win32, the types
.NET Pointer and Exception types might conflict with the Delphi Pointer and
Exception types. To fix this problem, add the following lines after the mscorlib
section:
Pointer=CLRPointer
Exception=CLRException
Top
.NET Porting Notes
- You can not assign strings to PChar or PWideChar in Delphi 2005. .NET strings
are not modifiable, and you can not take the address of a character in the
string. Therefore, PChar and PWideChar are not assignment compatible with
String. You need to copy the string data to a local array variable. PChar
and PWideChar will work with local array variables.
- In Win32, floating point values with less than four decimal places assigned
to variants will appear in the variant with a type of Currency. In .NET, the
same values will appear in the variant with a type of Double. This does not
affect the functionality of float values used in variants (arithmetic operations
will produce the same results), but it will affect any source code that extracts
the data type from the variant and expects to see a currency in the variant.
- When porting Win32 packages to .NET, you will need to change the package
names in the requires clause to reflect the following VCL for .NET package
names:
Win32 .NET
----- ----
rtl Borland.Delphi and Borland.VclRtl
vcl Borland.Vcl
vclx Borland.VclX
dbrtl Borland.VclDbRtl
bdertl Borland.VclBdeRtl
vcldb Borland.VclDbCtrls
dbexpress Borland.VclDbExpress
dbxcds Borland.VclDbxCds
dsnap Borland.VclDSnap
dsnapcon Borland.VclDSnapCon
vclactnband Borland.VclActnBand
vclado Borland.VclAdoDb
IBXpress Borland.VclIBXpress
Packages can now be installed in the IDE by using Component > Installed
.NET Components > .NET VCL Components.
When migrating a VCL for Win32 project to VCL for .NET, you need to rename
each of the project's *.dfm files to *.nfm, and, in each .pas file, change
the $R reference from .dfm to .nfm.
Parameters declared as 'const' on COM interfaces and callbacks to unmanaged
APIs (such as the Win32 API) are not passed by reference. For backwards compatibility,
change any 'const' declarations to '[in] var' as follows: type // VCL declaration
TFontEnumProc = function (const lplf: TLogFont; const lptm: TTextMetric; dwType:
DWORD; lpData: LPARAM): Integer; // VCL.NET declaration TFontEnumProc = function
([in] var lplf: TLogFont; [in] var lptm: TTextMetric; dwType: DWORD; lpData:
LPARAM): Integer; This change is not needed for external declarations using
the DllImport attribute.
When associating custom data with ListBox and ComboBox items, mixing the
use of .Items.Objects and sending GETITEMDATA/SETITEMDATA messages
to the Win32 API is not supported. This would interfere with the ListBox's/ComboBox's
internal references maintained to prevent premature garbage collection of
the custom data.
When porting a VCL and/or database application originally created with Delphi
for Win32, it is necessary to specify the STA threading model for the application.
This is done by adding "[STAThread]" before the begin statement in the main
project file.
Calling Virtual Constructors from within a Constructor
Delphi Win32 behavior when calling a virtual constructor from within the body
of another constructor of the same class type is to call the virtual constructor
as if it were a virtual method on the current object instance. Delphi for
.NET does not implement this specific aspect of virtual constructors. In Delphi
for .NET, a virtual constructor called from within a constructor body will
be executed as non-virtual call on the current object instance. When the compiler
encounters such a call it will report an unsupported language feature warning.
Delphi code that relies on this particular aspect of constructor polymorphism
of the Delphi language can achieve equivalent results in Delphi for .NET by
implementing the polymorphic parts as virtual methods or virtual class methods
instead of virtual constructors. Virtual methods and virtual class methods
are called polymorphically from within constructor bodies; only virtual constructors
are not called polymorphically.
For more information on porting applications, refer to "Porting VCL Applications"
in the online Help.
Top
Database Notes
- Borland Data Provider (BDP) now supports Oracle packages. You can access
Oracle packages by setting the BDPCommand CommandOptions
property to PACKAGENAME=packagename at either at designtime or runtime.
You can then use the Command Text Editor to view the various
procedures included in the package and the parameters associated with the
procedure.
- The dbxConnections.ini file has a new Prepare SQL entry.
Setting Prepare SQL to False will set eConnPrepareSQL/eCommPrepareSQL
to False in the dbExpress MSSQL driver (dbexpmss.dll), which
prevents the driver from calling ICommandPrepare::Prepare(). This will resolve
several MS SQLOLEDB.DLL limitations with SQL queries, such as UNION ALL, WITH
LOCK, Sub queries and parameter binding NULL on NOT NULL integer columns (affects
master-detail with ClientDataSet). By default, Prepare SQL
is set to True and the MSSQL driver will call ICommandPrepare::Prepare(),
as it did prior to this setting.
- For Delphi VCL .NET projects, the Reconcile Error Dialog
is not available in the Object Repository gallery. However, you can manually
add the dialog to your project by choosing Project > Add to Project
and navigating to C:\Program Files\Borland\BDS\3.0\Objrepos\DelphiDotNet\Borland.Vcl.recerror.pas.
- Generating a schema fails when trying to create an InterBase table that
contains Unicode characters in the name. InterBase does not support Unicode
characters in metadata names. If you model in a non-ASCII language (such as
Russian), you must set the tagged values TableName and ColumnName to be able
to create database schemas in InterBase.
Database Certification
The following database versions are certified with the Delphi 2005
data-access technologies:
dbExpress
- INTERBASE 7.5 (*Driver should work with INTERBASE 6.5, 7.0,7.1
also)
- ORACLE 10g (*Driver should work with ORACLE 9.1.0, 9.2.0 also)
- DB2 UDB Version 8.x (*Driver should work with DB2 V7 also)
- MSSQL 2000
- INFORMIX 9.x
- SQL Anywhere 9 (*Driver should work with ASA 8 also)
- MySQL 4.0.18 or latest
- SYBASE 12.5
* The driver is not fully certified with this version of the database.
Borland Data Provider for .NET (BDP)
- INTERBASE 7.5 (*Provider should work with INTERBASE 6.5,
7.0,7.1
also)
- ORACLE 10g (*Provider should work with ORACLE 9.1.0, 9.2.0 also)
- DB2 UDB Version 8.x (*Provider should work with DB2 V7 also)
- MSSQL/MSDE 2000
- MSACCESS 2000
- SYBASE 12.5
* The Provider is not fully certified with this version of the
database.
dbGO
The latest database version supported by the latest MDAC 2.8.
BDE
Supports only local drivers (Paradox and dBase).
Top
Internet and HTML Notes
- The DBWeb Control Library is not available in the Personal
edition of Delphi 2005, even though it appears in the New Items
gallery.
- When using the Classic Undocked desktop, running an ASP.NET application
may result in the error
Cannot activate an edit designer (HTMLTableDesigner)
when there is no active document
. To resolve this error:
- Make sure no projects are open in the IDE.
- From the desktop drop-down list, select Debug Layout.
- Choose View > Dock Edit Window to undock the IDE.
- Click the Save current desktop button (next to the
desktop drop-down list).
- Save the current desktop as Debug Layout and click
OK.
You can now run ASP.NET applications using the Classic Undocked layout.
- Developing HTML Frame Sets in the HTML/ASP Designer is not supported.
- Using multiple, undocked HTML/ASP Designers, typically the result of using
the New Edit Window command, is not supported.
- To enable IIS debugging of ASP.NET applications, the Delphi 2005 installation
program requests permission to update your machine.config file with Borland
debugger information. (If you reply No, the Borland debugger information is
available in each application's web.config file as comments.)
After installing Delphi 2005, you can still update machine.config manually.
On Windows XP, machine.config is located by default at %SystemRoot%\Microsoft.NET\Framework\v1.1.4322\CONFIG.
To update machine.config, add the following to the <httpModules> section:
<add name="DbgConnect" type="Borland.DbkAsp.DbkConnModule,Borland.dbkasp,Version=9.0.0.1,
Culture=neutral, PublicKeyToken=b0524c541232aae7" />
and the following to the <assemblies> section:
<add assembly="Borland.dbkasp, Version=9.0.0.1, Culture=neutral, PublicKeyToken=b0524c541232aae7"
/>
- If IIS is installed after the .NET Framework, ASP.NET must be registered
with IIS by choosing Start > Run and entering the following
command:
%comspec% /K %windir%\microsoft.net\framework\v1.1.4322\aspnet_regiis.exe
-i
Otherwise, attempting to run an ASP.NET application in the IDE will result
in the error Unable to start debugging on the web server. Unable to
attach to ASP.NET worker process (typically for aspnet_wp.exe or w3wp.exe)
- Even after registering ASP.NET with IIS, the first attempt to run an ASP.NET
application in the IDE may result in the error described above. Running the
application a second time will usually succeed. If the error still occurs,
try using Run > Run without debugging.
- Running an ASP.NET project that has a blank HTTPAddress, such as an imported
Visual Studio project, may result in the error
Unable to scan program's
header
. Perform the following steps to correct the error:
- With the project open in the IDE, choose Project > Options >
ASP.NET.
- Check Launch Browser.
- Set Start Page to the project's
.aspx
file.
- Set HTTP address to the project's web page, for example,
http://localhost/WebApplication3/WebForm1.aspx
.
- Check Host with web server.
- The Server defaults to IIS. If necessary, select a
different server.
- Set Virtual directory to the directory used in the
Visual Studio project, or create a directory by using the Server
Options button.
- Click OK and run the application.
- For existing ASP.NET projects that use DB Web controls, you must update
project references to use the current version of Borland.Data.Web.dll.
To determine which version of the dll your project uses, expand the References
node in the Project Manager and select Borland.Data.Web.dll. In the Object
Inspector, note the Full Path property. If it points to ...shared
assemblies\2.0\
, you are using the Delphi 8 version of the dll and
will need to update the reference as follows:
- In the Project Manager, right-click Borland.Data.Web.dll and choose
Remove From Project.
- Choose Project > Add Reference to display the Add
Reference dialog box.
- Click Browse and navigate to:
c:\program files\common files\borland shared\bds\shared assemblies\3.0\Borland.Data.Web.dll
then click Open.
- Click OK. The dll is displayed in the Project Manager.
- Choose Project > Compile.
- To build a WebSnap application that uses the WebAppDebugger, you must have
the Indy 9 units (bin/lib/indy9) on the project or library path.
- The HTML designer in the IDE incorrectly modifies TPageProducer style tags
(<#foo>). If your HTML uses page producer style tags, you should avoid
using the HTML designer to modify your web pages.
Top
Debugger Notes
- Managed debugging of programs started as native applications is not supported
on Windows 2000.
- Values are not displayed when inspecting, evaluating, and watching variables
in a package run by a host application. As a workaround, you can:
- Add the application project (generally an .exe) and the package or assembly
project (generally a .dll) to a project group.
- In the Project Manager, right-click the exe node of the application project
and choose Dependencies. In the Project Dependencies
dialog, set the checkbox ON for the package or assembly
to be debugged.
- In the Project Manager, right-click the exe node of the application project
and choose Activate to ensure that the application (exe)
project is active.
- Open source files for the package or assembly and set breakpoints if needed,
but ensure that the application project remains the active project.
- Begin debugging.
Top
Enterprise Core Object (ECO) Notes
- Code Visualization and class diagrams in ECO Framework projects will not
function properly when several projects reside in one folder. Avoid creating
multiple projects in a single folder when using these features of the IDE.
- For information on upgrading ECO projects from Delphi 8 or C#Builder 1,
refer to the Delphi 2005 Help topic "Upgrading an ECO Framework Project
from a Prior Release. "
- The ECO persistence mapper can not load data from two columns with the same
name (either from different tables, or from the same table using different
aliases). The second attribute that is supposed to load data from a column
with the same name as some other column will get the wrong value. As a workaround,
mark all but one of the attributes (that load data from columns with a name
collision) as DelayedFetch in the model.
This problem typically occurs only when you either write your own mapping
file, or change the column name for an attribute to collide with the column
name for an attribute in a sub or super class.
- Deleting a sub package from a UML diagram and then compiling the code may
result in the error
Undeclared identifier: 'CoreClasses_Sub_1'
.
As a workaround, delete the offending line of code (as noted in the error)
and recompile.
- You can not name modeled classes Adaptee, Result, or Index, as these names
conflict with names used in ECO generated code. If you must use those names,
a workaround is to prefix the classes with an underscore and set the Alias
of the class to the string without underscore.
- After performing a reverse wrapping of an existing database, two files are
generated. One file is the source code file (.pas or .cs) that represents
the model and one file is the mapping file (.xml). The source code file will
automatically be a part of the project, but the mapping file must be added
to the application with the following steps.
- Add a FileMappingProvider to your EcoSpace.
- Set the FileName property to the file name of your
mapping XML file.
- Set the property PersistenceMapper.RuntimeMappingProvider
to your new FileMappingProvider.
This will allow you to use the new mapping information for normal runtime
operations (read/write data). To use it in metadata operations (CreateDb,
EvolveDb), you must also set the Old and New
mapping provider properties. If you set the NewMappingProvider to the same
as the RunTimeMappingProvider (that is, the new FileMappingProvider component),
and then run the Upgrade tool to add the existing mapping information to the
database, you should be able to use the EvolveDb functionality. If you are
not allowed to modify the schema and store the mapping information in the
database, you will have to maintain the old mapping information manually and
add another FileMappingProvider that will always refer to the old mapping
file. This second FileMappingProvider component should be installed as PersistenceMapper.OldMappingProvider.
- The automatic list interfaces used for multilinks (for example, IPersonList)
do not implement IList or IEnumerable. This means that they can not be used
directly in a for-statement (or foreach in C#). However, the underlying adapter
implements IList, so in order to enumerate over the list, you can cast it
to IList:
For Delphi:
var
aBuilding: Building
...
for aBuilding in (aPerson.OwnedBuildings as IList)
DoSomethingWithBuilding(aBuilding)
For C#:
foreach (Building aBuilding in (aPerson.OwnedBuildings as IList))
DoSomethingWithBuilding(aBuilding)
- Reverse engineering tables without primary keys: When using the MatsSoft
tool to reverse engineer an database that has tables without primary keys,
the tool incorrectly generates classes and mapping definitions for these tables.
Since they have no primary key, they will get invalid key definitions in the
mapping file, which will cause an exception at startup of your application.
To resolve this problem, do one of the following:
- Remove the classes from the modeling surface and their corresponding
mapping definitions from the XML file.
- Choose a column or set of columns in the table that can be used as an
identity for the entries in the table (must be unique). Update the Signature
attribute in the KeyDef-nodes in the XML file and add the columns to the
KeyImpl nodes. For example, for the BioLife class/table in the sample
DbDemos database, change:
<KeyDef Name="EcoKey" Signature="" IsId="True"
KeyMapper="Attribute"/>
to:
<KeyDef Name="EcoKey" Signature="System.Double"
IsId="True" KeyMapper="Attribute"/>
and change:
<KeyImpl Name="EcoKey" IsAutoInc="False">
</KeyImpl>
to:
<KeyImpl Name="EcoKey" IsAutoInc="False">
<KeyColumn Name="SPECIES_NO">
</KeyImpl>
- The signature of SubscriberAdapterBase.DoReceive() has changed. It now
has a new parameter, object actualSubscriber, which should
be used instead of the ActualSubscriber property.
The Delphi for .NET implementation should now look like:
procedure DoReceive(sender: System.Object; e: eventArgs; actualSubscriber:
System.Object); override;
The C# implementation should now look like:
override void DoReceive(object sender, EventArgs e, object actualSubscriber)
Top
Code Visualization Notes
- When viewing a class diagram, the property descriptions displayed beneath
the Object Inspector incorrectly suggest that read-only properties can be
edited.
- Some users might be unable to save changes to the Together options (Tools
> Options >Together) depending on their access rights to the
file TgNET.config. To resolve this issue, those users should be granted write
access to the TgNET.config. By default, this file is located at C:\Program
Files\Borland\BDS\3.0\Bin\Config.
- Switching to another application and back to the IDE while editing in the
UML design surface may disable the IDE main menu. To enable the menu, switch
to another application and back to the IDE again.
- When renaming a UML element, such as a package, the rename is not successful
within custom attributes. You will need to update the code manually. For example,
after renaming the CoreClasses package, the following line will have to updated:
[assembly: RuntimeRequiredAttribute(TypeOf(CoreClasses))]
- When typing a new type definition into code that is associated with a model,
the model design surface may become unresponsive to subsequent edits. To exit
the unresponsive designer, close and reopen the project. To avoid the unresponsive
designer, paste the code for the new type definition into the code or reference
user types from used units.
Top
Unit Testing Notes
The Unit Test Case Wizard included in Delphi 2005 generates
skeleton code that is intended to be used as a starting point for writing unit
tests. In most cases the generated code must be modified before it can be compiled.
In particular any constructor call in the SetUp method will
not have any parameters listed. There are also know issues with the types of
local variables in the generated code being incorrect, these include:
- Char return types are incorrectly typed as WideChar
- array of const parameters are incorrectly typed as System.TObject
- untyped var parameters are incorrectly typed as VOID
The refactoring feature or search and replace can often be used to correctly these problems.
When the output file for the Test Case Wizard exists, it will
be updated by adding test methods for only the new methods that were added to
the source file from the previous execution of the wizard. In some cases, the
test methods for DUnit will not be correctly placed in a published
section of the class and will need to be moved by hand from a public
to a published section otherwise they will not be listed in
the test runner.
Top
VCL Notes
- TCustomForm has two new properties:
TCustomForm.PopupMode controls how the top-level form behaves
when using the Windows WS_POPUP dialog style. A window that is set to the
WS_POPUP style is always on top of its owner in z-order. The PopupMode
property acts much like the fsStayOnTop property but allows
more control over the layering of dialogs. PopupMode can
be set to:
pmNone
The default value. Provides behavior identical to previous Delphi releases,
except when ShowModal is called (see pmAuto).
pmAuto
Forms are now automatically set to pmAuto when ShowModal
is called. One side effect of this setting is that it causes the window
handle to be recreated, which can cause problems. If you explicitly set
the PopupMode property to pmAuto prior
to ShowModal at designtime, it is not necessary to recreate the window
handle.
pmExplicit
Forces the windows to stay on top of the main form. You can use pmExplicit
when creating non-modal design windows, such as tool palettes or other
floating windows. For example, in an IDE in which the editor is docked
to the main form, the design window remains on top of the designer, if
you set PopupMode to pmExplicit. If
the IDE is in undocked mode, and you set PopupMode to
pmExplicit, the design window stays on top of the main
form, but now behaves much like it did in the past, because it allows
other top-level forms to obscure the design window.
TCustomForm.PopupParent sets the parent popup dialog among
a group of dialogs. If set to an explicit TCustomForm, forces the z-order
of forms and creates a stacked appearance which the user can not change. If
the PopupMode property is set to pmExplicit
and PopupParent is nil, then the Application.MainForm is
implicitly set to be the PopupParent. If you have not assigned
an Application.MainForm, for example, when a form is the first one created,
then the PopupParent is set to Application.Handle. If the
PopupMode property is set to pmAuto, Screen.ActiveForm
is used as the PopupParent.
- WinHelp is no longer implicitly registered as a Help viewer. To use WinHelp
from an application, add WinHelpViewer to the uses list of any unit included
in the application.
- In VCL for .NET, the Data parameter of THelpEvent is declared as TObject
instead of LongInt. Help contexts are boxed as THelpContext, help keywords
and commands are boxed as string.
Top
Localization Notes
- The Internal Translation Environment (ITE) does not support editing MDI
Forms in this release.
- When using the ITE, make sure that your user PATH variable includes the
location of the .NET SDK (typically c:\Program Files\Microsoft.NET\SDK\1.1\bin).
Otherwise, the ITE might not create satellite assemblies for VCL for .NET
applications.
Top
StarTeam Notes
- Computers that have more than one IP address may experience connectivity
issues when accessing the StarTeam server. There is a hotfix available from
Microsoft to correct this problem. For more information, refer to the Microsoft
knowledge base articles 816943 and 819777 at http://support.microsoft.com.
- In the History Manager view, you may need to press the Refresh
button to display newly committed projects.
Top
Janeva Notes
To activate your copy of Janeva, a development key is necessary. Registered
users can download a development key from:
http://www.borland.com/products/downloads/download_janeva.html
Top
Indy Notes
When installing Delphi 2005, you have a choice to install Indy 9 or Indy 10
controls (Indy 10 is installed by default). In order to move Indy into a single
source solution for both Win32 and .NET, some major changes were required. As
a result, your existing Indy 9 applications may not compile using Indy 10. If
your existing Indy 9 applications fail to compile, it might be because you have
Indy 10 installed. (The Indy 9 compiled package is indy.dcp. The Indy 10 compiled
packages are IndyCore.dcp, IndyProtocols.dcp, and IndySystem.dcp.)
After installing Delphi 2005, you can switch from Indy 10 to Indy 9 by using
the following procedure:
- Open a Delphi Win32 application in the IDE to enable the File >
New > Unit - Delphi for Win32 menu item.
- Choose Component > Install Packages.
- Select Indy 10 Core Design Time and Indy 10 Protocols
Design Time and click Remove.
- Click the Add button.
- Navigate to $(BDS)\Bin\, select:
dclIndy90.bpl
and click Open.
- Click OK to close the dialog.
- Choose Tools > Options > Delphi Options > Library - Win32.
- Locate Library Path, click the ellipsis (...) button and
change:
$(BDS)\LIB\INDY10
to:
$(BDS)\LIB\INDY9
- Locate Browsing Paths, click the ellipsis (...) button
and delete:
$(BDS)\source\Indy10\Core
$(BDS)\source\Indy10\protocols
$(BDS)\source\Indy10\system
and add:
$(BDS)\source\Win32\Indy9
- Locate Debug DCU Path, click the ellipsis (...) button
and change:
$(BDS)\lib\Debug\Indy10
to:
$(BDS)\lib\Debug\Indy9
- Click OK.
To switch to Indy 10 components, use the above procedure as a guideline, but
install Indy 10 instead of Indy 9.
Top
Microsoft Office Notes
When installing Delphi 2005, you have a choice to install Microsoft Office
2000 or Windows Office XP controls. Office XP controls are installed by default.
After installing, you can switch from Office XP to Office 2000 controls by using
the following procedure:
- Open a Delphi Win32 application in the IDE to enable the File >
New > Unit - Delphi for Win32 menu item.
- Choose Component > Install Packages.
- Select Microsoft Office XP Sample Automation Server Wrapper Components
and click Remove.
- Click the Add button.
- Navigate to $(BDS)\Bin\, select dcloffice2k90.bpl, and click Open.
- Click OK to close the dialog.
Top
Crystal Reports Notes
- If you attempt to build a Delphi 2005 web application project and you receive
the following error:
Compilation Error
Description:
An error occurred during the compilation of a resource required to service this request.
Please review the following specific error details and modify your source code appropriately.
Compiler Error Message:
CS0011: Referenced class "HyperlinksUnit.Hyperlinks" has base class or
interface "CrystalDecisions.CrystalReports.Engine.ReportClass" defined in
an assembly that is not referenced. You must add a reference to assembly
"CrystalDecisions.CrystalReports.Engine."
You can work around this issue by including the following lines in your respective web.config files:
<compilation defaultLanguage="c#" debug="true">
<assemblies>
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.Shared, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.Web, Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</assemblies>
</compilation>
- Adding reports with spaces in the filename is not supported in Delphi for
.NET projects in Delphi 2005. Before adding a report to the project, rename
the report to eliminate spaces in the filename.
- After you uninstall Delphi 2005, several Crystal Reports dlls may remain
in the following directory:
C:\Program Files\Common Files\Crystal Decisions\1.1\Managed
After uninstalling Delphi 2005, navigate to the directory and manually delete
the following files:
CrystalDecisions.CrystalReports.Engine.dll
CrystalDecisions.ReportSource.dll
CrystalDecisions.Shared.dll
CrystalDecisions.Web.dll
CrystalDecisions.Windows.Forms.dll
CrystalEnterpriseLib.dll
CrystalInfoStoreLib.dll
CrystalKeyCodeLib.dll
CrystalPluginMgrLib.dll
CrystalReportPluginLib.dll
Top
Copyright 2004 Borland Software Corporation. All rights reserved.