Release Notes for XE2

From RAD Studio XE2
Jump to: navigation, search

Go Up to What's New in Delphi and C++Builder XE2

These Release Notes contain important information that might not appear in the main product documentation. We recommend that you read this page in its entirety. For the most current version of these notes, see


Installing, Uninstalling, and Upgrading Your Product

Before you install, uninstall, or upgrade the product, read the Install.htm and License.rtf files. The Install.htm file gives the system and free space requirements, and installation and upgrade procedures. License.rtf is your Software License and Support agreement.

Read the most current version of the Install.htm file on the docwiki at Installation Notes for XE2.

Here are other ways to access the Install.htm file:

  • Open the file
  • Click the Help button on the Install launcher
  • Open Install.htm in your product installation directory; by default it is:
    C:\Program Files\Embarcadero\RAD Studio\x.x

Please Install All Available Updates

We recommend that you install every product update as they become available. Each update has custom release notes on the docwiki. Thus you can (and should) read the associated release notes before you install any update. The available XE2 updates are listed at the end of these release notes and in What's New in Delphi and C++Builder XE2

To check for the availability of a product update, go to the Start menu | All Programs | Embarcadero RAD Studio XE2 | Check for updates.

Instructions are in the Installation Notes for XE2.

For more information about installation, deployment, and licensing issues, see the Install.htm, Deploy.htm, and License.rtf files that are installed by default at C:\Program Files\Embarcadero\RAD Studio\x.x (64-bit Windows uses Program Files (x86).

General Notes

Your Product Includes Licenses for Previous Versions

Licenses for previous versions of the product are included with your XE2 license.

  • Delphi XE2 includes licenses for Delphi XE, 2010, 2009, 2007 and 7.
  • C++Builder XE2 includes licenses for C++Builder XE, 2010, 2009, 2007 and 6.
  • RAD Studio XE2 includes the earlier version licenses listed in the previous items.

For more information about licenses, see Installation Notes for XE2 or the Install.htm file in your product installation directory.

Adding DLLs/dylibs/Packages that are Required as Dependencies

If a project A (either an executable or a dll/dylib/package) depends on another project B, you must deploy the dependencies for project B along with project A. For example, in an OS X application, required .dylibs might be libcgcrt.dylib, bplrtl160.dylib, or other Embarcadero .dylibs. To manually add files to a deployment, use the Deployment Manager to inspect B's deployment, and add those dlls/dylibs/packages to A's deployment, along with the final output of B.

The Problem of Invalid Platform

If your system has an unknown platform value set (for example, as a preset system variable %Platform%), the following error message is displayed:

Invalid PLATFORM variable "(value)". PLATFORM must be one of the following: "Win32", "Win64", or "OSX32".

If PLATFORM is defined by your system's environment, it must be overridden in the RAD Studio IDE or passed explicitly on the command line to MSBuild; for example, /p:Platform=Win32.

Debugging WebSnap and WebBroker Using WebAppDebugger

To debug WebSnap and WebBroker applications using the WebAppDebugger, start by running serverinfo.exe, which silently registers itself. This step is required to use the Web Application Debugger (WebAppDbg.exe, located in the \bin folder of your installation directory).

IDE Support for Unicode Characters Outside the Basic Multilingual Plane

Windows® Vista®, Windows® 7, and future OS's correctly display the font for any language. On XP operating systems, however, the font that the IDE uses (Tahoma, which ships with English versions of the operating system) does not support the display of characters outside the basic multilingual plane. Characters that use surrogate pairs will not display correctly in some parts of the IDE including the Object Inspector.

To enable correct display, install supplemental language support into Windows using Regional and Language Options in the Windows control panel. For more information, see

Component Developer Notes

Registry Keys for Component Installers

If you are a VCL component vendor and your component installer updates paths in the registry to include paths to your components, there is an additional registry key your installer should update in HKEY_LOCAL_MACHINE\Software\Embarcadero\BDS\x.x\Globals.

Add (or update if it already exists) a string value called ForceEnvOptionsUpdate. Assign it a string value of "1". When this registry key has a value of "1", the next time the IDE runs, it updates the EnvOptions.proj file on disk to include the path(s) that your installer added. The EnvOptions.proj file is the mechanism by which the new MSBuild build engine in the IDE is able to include paths that are listed on the Library - Win32 page in the IDE's Tools>Options dialog.

If your installer updates any of the following registry keys, it should also add or update the Globals\ForceEnvOptionsUpdate key:

  • Software\Embarcadero\BDS\x.x\Library\Browsing Path
  • Software\Embarcadero\BDS\x.x\Library\Debug DCU Path
  • Software\Embarcadero\BDS\x.x\Library\Namespace Search Path
  • Software\Embarcadero\BDS\x.x\Library\Package DCP Output
  • Software\Embarcadero\BDS\x.x\Library\Package BPL Output
  • Software\Embarcadero\BDS\x.x\Library\Search Path

Making Your Components Available at Design Time and Run Time

Following are the two ways the IDE decides whether or not a component is available for Win32/Win64/OSX32. (Here "available" means appearing on the palette, and checked by the IDE. The IDE does not do any compile-time checking other than the component unit's existence.) Both methods rely on data embedded in the Win32 run-time (or design+run-time) package that implements the components. The IDE cannot load Win64 and OSX32 packages in the IDE, so the IDE must defer to the Win32 package for information.

  • The RAD Studio build system automatically embeds an RC_DATA resource in the Win32 package binary named PLATFORMTARGETS, which is a bitmask of the pidXXX constants in System.Classes.pas and reflects the package project's targeted platforms. The IDE reads this when the package is loaded and uses it to decide, for example, whether or not to disable the component(s) in the palette when an unsupported platform is active.
    To target multiple platforms with a component package implies a contract between the component developer and the IDE. The IDE assumes that if a component package project targets multiple platforms and the developer distributes the Win32 run-time package to customers (and all the associated compilable and linkable files), the developer will also distribute all the necessary compilable, linkable, and run-time bits for the other targeted platforms as well.
  • Individual components can use the ComponentPlatformsAttribute class attribute to override the data in PLATFORMTARGETS, using a bitmask of the same constants in Classes. For example:
        [ComponentPlatformsAttribute(pidWin32 or pidWin64)] // not supported on OSX
        TMyComponent = class(TComponent)

    Use of this attribute implies the same contract as described in the first bulleted item.

Unit Scope Names for Your Own Components

Unit scope names are new in the XE2 release. In general, component writers do not need to provide a unit scope name for their components because the added uses entry is automatically scoped. However, if you create your own components, you can add unit scope names in new and existing projects by following the steps below. You can also remove the unit scope names if the names are no longer needed.

  1. Locate the Registry key HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Library\libname, where libname is your supported target platform (one of Win32, Win64, or OSX32).
  2. In the Library directory for your supported target platform (libname), create the following key:
  3. Add a string value:
    • Value Name = vendorname, where vendorname is the name of your component development enterprise
    • Value Data = unitscopenames, where unit scope names are delimited by semicolons
For example, this Registry entry adds three compatibility unit scope names (NewComp, OldComp, and MyComp) for the vendor MyComponentCompany:

The help topic Adding Unit Scope Names for Your Own Components describes another less-safe workaround that affects every project regardless of state.

Third Party Add-In Notes

Some Third Party Add-Ins Support Cross-Platform Development

Support by third party add-ins for cross-platform development is summarized at: Third Parties' Cross-Platform Support.

OS X Platform Is Selectable but Not Supported for IntraWeb

If you create either a Delphi or a C++ IntraWeb application, you can select the OS X platform in the Target Platforms node in the Project Manager, but IntraWeb does not support development for the OS X platform.

FastReport Notes

If you are using FastReport with RAD Studio XE2, be aware of the following issues:

  • FastReport supports only VCL applications, and does not support OS X. If you create a FireMonkey HD application, the FastScript, FastReport 4.0, or FastReport 4 exports tab might be available, but you will not be able to compile the application because of error 1026 File not found: 'Dialogs.dcu'.
  • FastReport components are not supported on iOS, but they might be available in the Tool Palette for iOS applications. These components raise compiling issues when used in an iOS application.
  • FastReport supports Win64 application development, but the following Win64 FastReport components might be disabled on the Tool Palette:
    • All the items in FastScript section
    • FastReport 4.0 | TfrxCheckBoxObject
    • FastReport 4.0 | TfrxGZipCompressor
    • FastReport 4.0 | TfrxCrypt
    • FR4 tools | TfrxDocSite
    • FR4 tools | TfrxTBPanel
    • FR4 tools | TfrxRuler
    • FR4 tools | TfrxScrollBox
    • FastReport 4 exports | TfrxBMPExport
    • FastReport 4 exports | TfrxJPEGExport
    • FastReport 4 exports | TfrxTIFFExport
    • FastReport 4 exports | TfrxGIFExport The workaround is to create a Win32 project, add these items on the application's form, and then add the Win64 platform to the project. Then you can successfully compile the project for Win64.

Windows 7 and Windows Vista Notes

Install With Admin Privileges

In Windows Vista, you must run the installer while logged on as a user with administrative privileges, because changes to the Program Files directory require elevated security.

Restart the Registration Client

The registration client occasionally fails on Windows Vista. To work around this problem, select Allow this program when the Windows Live OneCare Firewall appears, then exit and restart registration. Do not select Block this program, because doing so prevents you from registering afterward.

Default bpl Folder for x64 Output Is Not Created by the Installer

The default bpl output folder for x64 packages is a subdirectory of the x86 folder. The product installer creates the x86 BPL folder, but it does not create the x64 subfolder. This means that in order to compile Win64 packaged, you need to have administrator privileges under Windows 7.

Debug Requires Admin Privileges

On Vista with UAC enabled, if an executable file name includes "setup", "update", or "install", you cannot debug the program unless the IDE is started under the System Administrator account. Trying to run executable files that include these strings outside of the IDE triggers a "User Account Control" dialog requesting the password for the System Administrator account. Running within the IDE without debugging raises an error indicating the program requires privilege elevation. Running within the IDE with debugging raises a process creation error. For more information, see

TAnimate Requires TShellResources

If you use the TAnimate component in Vista or in Windows 7, you must also add the component TShellResources (in the Win32 tab of the Tool Palette) to your project. Adding TShellResources adds the following resources:

  • FindFolder.res
  • FindFile.res
  • FindComputer.res
  • CopyFiles.res
  • CopyFile.res
  • RecycleFile.res
  • EmptyRecycle.res
  • DeleteFile.res

Reconfigure BDE (deprecated)

If you are still using the deprecated BDE on Windows Vista or Windows 7, you need to reconfigure BDE so that it does not attempt to write files to the C:\<root> directory. Log on as an administrator and run BDEAdmin.exe, located at Program Files\Common Files\Borland Shared\BDE. Under Native, click PARADOX, and change NET DIR to point to a location other than the root directory. A suggested target is C:\Users\Public\Documents\RAD Studio.

Manifest Problem

The computer might restart when you add a manifest that has the Windows Vista extension to an .exe file or to a .dll file in Windows XP Service Pack 2 (SP2). For more information on this problem and the hotfix, see

Selecting Pre-Vista Dialogs

If you rebuild an existing VCL application that includes common dialog components and run it on a Vista system, it uses Vista file and task dialogs rather than traditional open, save, and message dialogs. If this is not desired, set the global variable UseLatestCommonDialogs false at the beginning of a program to force the original behavior.

IntraWeb on Vista

To run and debug VCL for the Web (IntraWeb) applications, you should use Windows 2003 or Windows XP. If you are using Windows Vista, you must turn off User Access Control (UAC) when debugging VCL for the Web applications. For more information about IntraWeb, including help for VCL for the Web components, see

WinHelp is Not Supported

Windows Vista does not support the deprecated WinHelp help viewer (WinHelp.exe). You should migrate your help system to HtmlHelp. If you want to try to use .HLP files, add the WinHelp32.exe viewer to the uses list of any unit included in the application, and download the WinHelp32 viewer from the Microsoft website

Delphi Notes

Compiling Large Project Groups Might Fail due to Out-of-Memory Errors

One way to recover from this problem is to close the project group, reopen it in the Project Manager, right-click the "failing" project in the group, and choose From Here | Build on the context menu. Compilation should succeed for the remaining projects.

If the project is composed of .exe files (not packages), another workaround is to enable and build with run-time packages. To do this:

  1. Go to Project > Options > Runtime Packages.
  2. Enable Link with runtime packages.
  3. Click the field for Runtime packages and then click the ellipsis [...] that appears.
  4. In Runtime packages, add rtl to the Runtime packages list:
    1. Enter rtl in the center field.
    2. Click Add.
  5. Click OK.

.hpp Header Files

Starting with XE, and continuing with XE2, the Delphi compiler outputs .hpp header files by default. This is a change from pre-XE releases. For example, if you attempt to import a DLL by ordinal value, the compiler reports "E1025 Language feature not supported" because .hpp generation  is not compatible with importing a DLL by ordinal value. However, you can import a DLL by ordinal value if you turn off .hpp generation. Go to the Project > Options > Output - C/C++ page, and for the option C/C++ Output file generation, select a value that does not include headers, such as "Generate DCUs only."

C++Builder Notes

Adding .dylibs Required for Dynamic Linking of C++ FireMonkey OS X Applications

For C++ OSX applications that use packages, the required run-time package deployment might be incomplete. Some packages might need to be deployed manually; this includes packages that are required implicitly by the project's listed run-time packages but do not also appear in the run-time package list (at Project > Options > Runtime Packages). The workaround is to use the Deployment Manager to add any required .dylibs.

C++ Console Applications that Need to Link with the Delphi RTL

If you create a C++ console application with no framework selected, the console application will not be able to link with the Delphi run-time library or handle Delphi exceptions. If you add a unit to this console application, the IDE adds the appropriate Delphi run-time libraries but does not switch the C++ run-time libraries to the versions that initialize and work with Delphi. The workaround is to enable "Link with the Delphi Runtime Library" on the Project > Options > C++ Linker page.

System.UnicodeString.t_str() Now Deprecated

The UnicodeString.t_str() function now always returns wchar_t* regardless of the current _TCHAR mapping.

This change does not affect you if you use _TCHAR mapping = wchar_t.  In recent releases, t_str() returned either const char* (if _TCHAR was mapped to char), or const wchar_t* (if _TCHAR was mapped to wchar_t). If _TCHAR mapping is set to char, you cannot assign the result of the t_str() function to something that does not support wchar_t (a compiler error is emitted in this case).

In order to use char values, convert the code as shown:

Before XE: mystr.t_str()

For XE and XE2: AnsiString(mystr).c_str()

Specifying WebSnap Directories

If you are using C++Builder with WebSnap, ensure that the executables are written to the same directory as the HTML files. On Project>Options>Directories and Conditionals>Final output directory, enter a dot (".") so that the executable is written to the project directory.

Resolving Code Completion Problems

Infrequently, Code Insight for C++ might fail or provide incomplete results when a project's precompiled header is regenerated. If this occurs, one of the following actions will fix the problem:

  • Re-Make the project
  • Delete the precompiled header
  • Clean and Make the project

Using the Delphi DesignIntf and DesignEditors Tools

If you are creating a C++ package that contains a Delphi unit that uses the DesignIntf and DesignEditors tools, you must choose Project > Options > Delphi Compiler > Other Options. In Use these packages when compiling, add DesignIDE in the combo box.

Database Notes

FireMonkey Client Requires Workaround to Support DataSnap REST Client Proxy

DataSnap or Cloud clients for C++/OS X do not link when built with run-time packages. The workaround is to add CustomIPTransport to the run-time packages list (choose Project > Options > Packages > Runtime Packages).

Unicode and Drivers

The following database drivers are not Unicode-enabled:

  • DB2
  • Sybase ASE
  • Informix

Connection Failure

If you are upgrading a database application from Delphi 2007 to Delphi XE2, the connection might fail. The workaround is to add DBX<database_name> to your uses clause.  For example, if you are using a TSQLConnection and connecting to an Oracle database, you need to add DBXOracle to your uses clause.

The following combinations have been tested:

LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 4.0.XX Server
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 4.0.XX Server
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 5.0.XX Server
LibMySQL.dll (5.1.XX) DBXMys.dll MySQL 5.1.XX Server

Driver Conflicts in Multi-Version Installations

If you have a previous version of the product installed and try to use the older version, it may load the drivers from this release when running from the IDE. This is because the \bin directory is ahead in the system path. To use the older drivers, one solution is to add an Override to your path in Tools > Options > Environment Variables and place your older \bin directory at the front of the path.

Supported Servers


  • InterBase XE, 2009, 2007, 7.5.1, 7.1*, 8.0*, 6.5* (All) (Driver dbxINT.dll, Client GDS32.DLL)
  • Firebird 2.5, 2.1, 1.5 (Ent/Ult/Arch) (Driver dbxfb.dll, Client fbclient.dll)
  • Sybase SQL Anywhere 12, 11, 10, 9, 8*, (Ent/Ult/Arch) (Driver dbxASA.dll, Client dbodbc*.dll)
  • DB2 UDB 9.5, 9.1, 8.x*, 7.x* (Ent/Ult/Arch) (Driver dbxDB2.dll, Client db2cli.dll)
  • Informix 9.x (Ent/Ult/Arch) (Driver dbxINF.dll, Client isqlb09a.dll)
  • Microsoft SQL Server 2008, 2005, 2000 (Ent/Ult/Arch) (Driver dbxMSS.dll, Client sqlncli10.dll)
  • MySQL 5.1, 5.0.27, 4.1* (Pro/Ent/Ult/Arch) (Driver dbxMYS.dll, Client libmysql.dll)
  • Oracle 11g, 10g, 9.2.0*, 9.1.0* (Ent/Ult/Arch) (Driver dbxora.dll, Client OCI.DLL)
  • Sybase ASE 12.5 (Ent/Ult/Arch) (Driver dbxASE.dll, Client libct.dll & libcs.dll)

* Driver not fully certified with this version of the database.

Debugger Notes

Ensure Debug Information by Adding .dcp Files to Application Deployment

If your Delphi application links with run-time packages, the expected debug information might not be generated. This is true for Mac OS X applications and for remote Win64 or remote Win32 applications. The workaround is to use the Deployment Manager to add the .dcp files that correspond to the run-time packages in your run-time package list. For instance, if you are using rtl, you must deploy the rtl.dcp file.

Use the .dcp files located in the Embarcadero\Rad Studio\9.0\lib directories, as follows:

  • For an OS X application: Embarcadero\Rad Studio\9.0\lib\osx\release
  • For a remote 64-bit Windows application: Embarcadero\Rad Studio\9.0\lib\win64\release
  • For a remote 32-bit Windows application: Embarcadero\Rad Studio\9.0\lib\win32\release

Error Can Occur for Delphi FMX HD OS X Application

Delphi error E2213 (Bad packaged unit format) can occur when building a Delphi FireMonkey HD OS X application that has the Link with runtime packages and Use debug .dcus options enabled. If you set these Project > Options separately and in the order given, and do a build after adding each option, the build fails after you set Use debug .dcus. The workaround is to save the project, close all, and then reopen the project. A build should succeed at this point.

Unexpected Results from Exceptions on Mac OS X

On Mac OS X, certain OS exceptions are mapped to Delphi language exceptions by the run-time library. These include the mach-level exceptions EXC_BAD_ACCESS, EXEC_ARITHMETIC and EXC_BAD_INSTRUCTION, or the equivalent Unix-level signals. This facility is not compatible with debugging and is disabled when a process is created for debugging. The debugger will notify the user when the exception is raised. However, programs that rely on catching such exceptions and continuing might behave differently when run under the debugger.

Messages on Mac After Crashes

If your OS X application contains unhandled exceptions, the debugger displays an exception notification that allows you to break, continue, or ignore. If you continue, and if you also have Xcode installed on the target Mac, the Mac displays a "quit unexpectedly" warning message, asking you to send a report to Apple. You can disable this warning by visiting the CrashReporterPrefs page, located on the Mac in Developer/Applications/Utilities. Click the Server button to allow for unattended operation.

Data Breakpoints in Code

Attempting to place a data breakpoint in code might result in program corruption. For example, placing a data breakpoint on a VMT slot might result in the program jumping to an incorrect location (the "last" byte of the address is overwritten with 0xcc).

Problems after Run > Detach

After a Run > Detach on a debugging session, the IDE might freeze when you start another debugging session.

System Mechanic 7 Pro is Incompatible with the Debugger

System Mechanic 7 Pro disables the functionality of the integrated debugger. The observed behavior is immediate termination of the process and a diagnostic message in the Event Log View. If the product is installed, debugging functionality can be restored by disabling execution of the "iolo DMV Service" via the Services manager.

Internationalization Notes

Migrating ITE/ETM Projects from Delphi 7

To upgrade an ITE/ETM project from Delphi 7, your dfms need to be in text format. To perform this conversion, use convert.exe (installed by default to C:\Program Files\CodeGear\RAD Studio\8.0\bin).

After the project is imported and you have updated your resource dll with the Resource DLL Wizard, you might experience an issue where the resource dll does not seem to be updated.  In this case, simply performing the update one more time in the wizard resolves the problem.

Using your user-locale as the UI locale

It is not recommended that you use your user-locale for the UI locale. The user-locale controls the format of numbers, date and time. The UI-locale controls menu, error message and all human-readable text for the specific language.

VCL/RTL and Locale

VCL/RTL selects the same localized module that Windows uses. If you want to use the user-locale to select the UI module,create a new unit, OverrideUIWithUserLocale.pas, and paste the following code:

            unit OverrideUIWithUserLocale;
              uses Windows;

Add this OverrideUIWithUserLocale unit as the first entry of the uses section:

           program Project1;
             Unit1 in 'Unit1.pas' {Form1};

FireMonkey Notes

FireMonkey Requires Embedded Designer

FireMonkey only supports the embedded form designer. If the IDE is set to use the non-embedded designer (that is, if Tools > Options > Environment Options > VCL Designer > Embedded Designer is unchecked), then FireMonkey projects will open FireMonkey Form units as if they were plain Delphi units. The Form Designer will not be accessible. To use the Form Designer, check the option to use the Embedded Designer and restart the IDE.

Required Files Missing (IPIndyImpl.dcp and inetdbexpress.dcp)

Delphi FireMonkey applications that target the Win64 and OS X platforms might report missing files. IPIndyImpl.dcp (used by CloudService.dcp) is missing for the Win64 and OS X platforms, and inetdbxpress.dcp is missing from the win64\release directory. You can download these files in a .zip file at .

TViewport3D Must be Hosted in a 2D Environment

Adding 3D components to a TViewport3D that is not parented by an HD Form or TLayer3D results in an Access Violation.

TListBox.OnChange Event Does Not Support the Selected Property

The OnChange event for Fmx.ListBox.TListBox creates an access violation if the procedure uses the TListBox.Selected property.

Far-East Characters Might Have Display Problems

A FireMonkey OS X application under the debugger with some European locales does not correctly display Far-East characters. For example, Japanese/Chinese characters might be displayed incorrectly in all conponents when the system's region setting is not English or Japan. However, if the application is invoked from the Finder, the application might display Far-East character correctly.

To avoid this problem, add the following line to the top of paserver.command shell script:

 export LANG=C

The paserver.command script is typically located in the folder /users/username/Applications/Embarcadero/PAServer.

Grid Dialog Closes Unexpectedly if ESCAPE is Pressed

When you are editing a grid inside a modal form (that is, typing text on a grid cell), pressing the ESCAPE key might unexpectedly close the modal dialog.

Some FMX OS X Applications Erroneously Include Windows Elements

An FMX HD OS X application that contains a TXMLDocument does not compile. TXMLDocument expects Xml.Win.msxmldom.dcu (Delphi) or Xml.Win.msxmldom.hpp (C++), both of which are Windows-only.

An FMX OS X application that contains TTcpClient does not compile. TTcpClient expects Web.Win.Sockets.dcu (Delphi) or Web.Win.Sockets.hpp (C++), both of which are Windows-only.

Indy TIdAntiFreeze Workaround for FireMonkey Designer

The Indy TIdAntiFreeze class is not available as a design-time component for FMX applications. As a workaround, add FMX.IdAntiFreeze to your uses clause and instantiate it programattically.


VCL Styles Introduced for VCL Applications

To add a custom style to your VCL application, go to the Project > Options > Application > Appearance dialog box. The XE2 release does not support Styles for Ribbon Controls.

VCL Styles and Form Borders

Using form BorderStyle bsDialog, bsSingle or bsToolWindow, the right window border appears to infringe on the client area.

Popup Form Closes Unexpectedly in Styled Applications

In applications that use Styles, sometimes Form.Close does not work, and a popup form might close if it loses focus.

SetThreadAffinityMask Does Not Support 64-bit

The RTL function Win.Winapi.Windows.SetThreadAffinityMask does not support 64-bit Windows development. The workaround is to declare your own version of SetThreadAffinityMask. For more information, see .

Run-Time Themes and TImageList.ColorDepth

If you set the TImageList ColorDepth property to cd32Bit and the ImageList contains transparent images, you must enable Run-Time Themes so that the images blend properly when drawn on controls. In the IDE, go to Project > Options > Application.

Add DataSnap.Midas.dcu if You Use VCL Reconcile Error Dialog or TSimpleDataSet

A VCL project that contains a VCL Reconcile Error dialog or TSimpleDataSet component does not compile without the addition of DataSnap.Midas.dcu. You can find DataSnap.Midas.dcu in your product installation directory, under \lib\platform, where platform is win32, win64, or osx32.

Unicode Problem in ClientDataSet.SaveToFile to XML

If international characters are used in the String/Memo fields, TCustomClientDataSet.SaveToFile to XML might generate incorrect data.  For example, spaces might appear in place of accented characters.

SizeOf Problem for TNotifyIconData

Due to changes in the Windows SDK, calling SizeOf(TNotifyIconData) will yield incorrect results on Windows versions prior to Windows Vista. Calling the TNotifyIconData.SizeOf method returns the correct size on all versions of Windows.

ActiveX Notes

Use TLIBIMP to Import a 64-bit Type Library or ActiveX Control

The Component > Import Component wizard looks only at the 32-bit Registry. So when running on a 64-bit system, you must use TLIBIMP directly if you wish to import a 64-bit specific Type Library or ActiveX Control.

Use 64-bit TRegSvr to Register 64-bit DLLs or In-Process Servers

The IDE, being a 32-bit process, cannot register 64-bit In-Proc/DLL Servers (32-bit processes cannot load 64-bit DLLs). To register 64-bit in-proc servers, you must use the 64-bit version of TRegSvr.exe, located in $(BDS)\bin64\TRegSvr.exe.

C++ ActiveX Libraries Must Use Static RTL and Packages

All C++ ActiveX libraries (using either ATL or DAX) must use static RTL and packages. Choose Project > Options, and then:

  • On the C++ Linker page, check False for Link with Dynamic RTL.
  • On the Packages page, uncheck Link with runtime packages .

SOAP Server Notes

Using SOAP Components in C++ on OS/X

OS/X C++ Applications that use the SOAP runtime (such as the THTTPRIO component) must explicitly link in the Indy package as the IDE only catches top level dependencies.

To do so, add the following lines to a .cpp file of your project:

 #if defined(__APPLE__)
   #pragma link "IndyCore.a"
   #pragma link "IndyProtocols.a"
   #pragma link "IndySystem.a"
   #pragma link "IndyCore.bpi"
   #pragma link "IndyProtocols.bpi"
   #pragma link "IndySystem.bpi"

An Alternate Path to Invoke WSDL Importer

If you invoke the WSDL Importer wizard using the path File > New > Other > WebServices > WSDL Importer, and you enter an invalid URL, error messages such as the following might occur:

  • Unable to load WSDL File/Location: <wrongURL>. Error [Empty document].
  • Unable to load WSDL File/Location: <wrongURL>. Error [Whitespace not allowed at this location]

The preferred workaround is to start the WSDL Importer using the alternate pathway (Component > Import WSDL). The error should then be caught inside the wizard.

.NET SOAP Services Available with Delphi Prism

The Win32 SOAP server support generates the older RPC|Encoded style WebServices. If you want a document/literal service or a service of any other WS-I compliant style, you should build your SOAP server using Delphi Prism, which supports the SOAP specifications that are supported by the .NET framework, including WS-I compliant styles.

Modeling Notes

When you open the context menu (right-click) on the Model View tab of the Project Manager, the command Open Diagram might not be enabled. However, you can open the diagram view by double-clicking the grayed-out Open Diagram command.

Help Notes

  • Location of Installed Help: By default, the help files are installed at C:\Program Files\Embarcadero\RAD Studio\X.X\Help\Doc.
  • See Known Problems in the Help for information about current open issues.
  • Docwiki Has the Most Up-to-Date Content: We generate the RAD Studio help from a docwiki, located at All RAD Studio users are invited to participate in the docwiki. You will always find the most recent and up-to-date help by visiting the docwiki. There are actually three separate wikis:
  • Microsoft Document Explorer 2008 (DExplore.exe):
    • DExplore is required to view Delphi and C++Builder XE2 locally installed documentation. If you do not have Microsoft Document Explorer 2008 installed, it will be installed as part of the Help System Install.
    • It is a known issue that a pre-release version of the license for Microsoft Document Explorer XE is displayed.
    • If you receive an access violation when you press F1 in the IDE, it is possible that an incompatible version of DExplore.exe has been installed. (To verify the version, run DExplore.exe standalone, check the Help | About box: If it says QFE, a quick fix has been installed by either Visual Studio 2008 or Prism.) To fix this problem, go to the Control Panel and run a Repair operation on the Embarcadero Delphi and C++Builder XE2 Help System.
  • MSSDK Help: The Microsoft Windows Platform SDK help is not installed by default with the product help. You can choose to install the MS SDK Help when you install the help by setting the MS SDK Help item on the Select Features page to Will be installed on local hard drive. For more information, see the Install.html file.
  • Refining the Search and Index in the Help: You can choose specific help volumes (such as MSDN Online) to be used in Search and Index functions in the online help. For information about using the help viewer to your advantage, see the full EDN article, "Getting the Best Results with RAD Studio Online Help" at
  • IntraWeb Documentation: For information about IntraWeb, including help for the VCL for the Web components, see

See Also