Delphi XE2 Update 2 (and the first Help Update) have been released. Here are a few notes and comments, since this update is slightly different from others in the past.

You can get the update download from CodeCentral at, download the new ISO at, or (which seems more logical to me) use the automatic Delphi XE2 update mechanism to install the new version. In fact, differently from Update 1, the new Update doesn't require a complete re-installation, but it is only a patch applied to the existing image (but you need to have Update 1 installed before migrating to Udpate 2).

Automatic Update

I've gone for the automatic update. Run Check for Updates directly (from the RAD Studio XE2 Program Group), and was suggested to downlaod and install. This is a sequence of screen shots:





All went very smooth, although it takes a bit more time than the average update. The installations leaves a temporary folder around (on my system it is C:\Users\Marco\AppData\Local\Temp\radstudio_xe2_update2_download), and this is for a specific reason: part of the updates must be done manually, as described below.

Manual Steps

After the update, there are some more manual steps you need to perform. Two of them must be done on your Mac or other target platform, and include updating the Platform Assistant (aka, remote debugger) and the FireMonkey support for iOS (that is used inside xCode). The third manual udpate is the Styles folder, given you might have modified some of those directly it is good they don't get overwritten.

FireMonkey Package Versioning

There is a significant number of bug fixes in Update 2, as you can also see at (remember this is a partial list, because it is only a list of fixed to publicly reported bugs, not internal ones). Many of the fixed relate to FireMonkey. However, there is also something else for this library. Contrary to the Embarcadero and Borland standards, some of the changes are breaking changes, meaning the DCU signature changed because of additions in the interface sections of the unit. This implies that existing third party packages (or your own packages are programs based on runtime packages) needs to be recompiled or you'll see compiler or runtime errors.

This is slightly more complex, as new packages have actually been renamed, so you can explicitly target the latest version of the package (the suggested appraoch) or a given one. To have source code that compiles against multiple versions your end users might have (in case you distribute FireMonkey code) you can use a specific define,

FireMonkeyVersion = 16.1

available in the FMX.Types unit. You can use it to IFDEF your code for different versions, if you really have to. All of these changes are covered in good detail in the release notes, online at I really recommend you read them carefully if you are doing FireMonkey development.

What Else?

There is much more than FireMonkey fixes and improvements in this release. There are many IDE changes, compiler fixes related with 64bit. So this is a must get update, even more than Update 1. Would everyone update, things will also be easier for developers of FireMonkey components.

Help Update

Finally, there is a new version of the Help (a separate update) available at