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 http://docwiki.embarcadero.com/RADStudio/en/Release_Notes_for_XE2.
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:
C:\Program Files\Embarcadero\RAD Studio\x.x
Product Update 1 is used as the baseline for XE2, so you must have Update 1 in order to install subsequent updates.
We recommend that you install every product update as they become available. Each update, other than Update 1, 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 (other than Update 1) 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).
Licenses for previous versions of the product are included with your XE2 license.
For more information about licenses, see Installation Notes for XE2 or the Install.htm file in your product installation directory.
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.
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.
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).
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 http://blogs.embarcadero.com/nickhodges/2008/07/17/39073.
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:
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.
type [ComponentPlatformsAttribute(pidWin32 or pidWin64)] // not supported on OSX TMyComponent = class(TComponent) private ... end;
Use of this attribute implies the same contract as described in the first bulleted item.
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.
HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Library\libname, where libname is your supported target platform (one of Win32, Win64, or OSX32).
CompatibilityUnitScopes
HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Library\Win32\CompatibilityUnitScopes\MyComponentCompany\MyComp;NewComp;OldComp
The help topic Adding Unit Scope Names for Your Own Components describes another less-safe workaround that affects every project regardless of state.
Support by third party add-ins for cross-platform development is summarized at: Third Parties' Cross-Platform Support.
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.
If you are using FastReport with RAD Studio XE2, be aware of the following issues:
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.
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.
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.
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 http://blogs.msdn.com/uac/archive/2006/01/13/512776.aspx.
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:
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.
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 http://support.microsoft.com/kb/921337.
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.
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 http://www.atozed.com/intraweb/docs/.
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 http://www.microsoft.com/downloads/details.aspx?FamilyID=6ebcfad9-d3f5-4365-8070-334cd175d4bb.
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:
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."
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.
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.
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()
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.
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:
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.
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).
The following database drivers are not Unicode-enabled:
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 |
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.
* Driver not fully certified with this version of the database.
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:
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.
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.
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.
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).
After a Run > Detach on a debugging session, the IDE might freeze when you start another debugging session.
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.
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.
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 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; interface implementation uses Windows; initialization SetLocaleOverride(GetUILanguages(GetThreadLocale)); end.
Add this OverrideUIWithUserLocale unit as the first entry of the uses section:
program Project1;
uses
OverrideUIWithUserLocale,
Forms,
Unit1 in 'Unit1.pas' {Form1};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.
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 http://cc.embarcadero.com/item/28484 .
Adding 3D components to a TViewport3D that is not parented by an HD Form or TLayer3D results in an Access Violation.
The OnChange event for Fmx.ListBox.TListBox creates an access violation if the procedure uses the TListBox.Selected property.
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.
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.
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.
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.
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.
Using form BorderStyle bsDialog, bsSingle or bsToolWindow, the right window border appears to infringe on the client area.
In applications that use Styles, sometimes Form.Close does not work, and a popup form might close if it loses focus.
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 http://msdn.microsoft.com/en-us/library/ms686247 .
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.
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.
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.
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.
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.
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.
All C++ ActiveX libraries (using either ATL or DAX) must use static RTL and packages. Choose Project > Options, and then:
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__) #ifndef USEPACKAGES #pragma link "IndyCore.a" #pragma link "IndyProtocols.a" #pragma link "IndySystem.a" #else #pragma link "IndyCore.bpi" #pragma link "IndyProtocols.bpi" #pragma link "IndySystem.bpi" #endif #endif
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.
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.
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.