What's New in Delphi and C++Builder XE3
Go Up to What's New
What's New in C++Builder 64-Bit Windows
Highlights of the XE3 Release
- New Metropolis UI Applications for Delphi VCL and FireMonkey
- FireMonkey Enhancements for XE3
- LiveBindings Enhancements for XE3
- Entitlement List and Provisioning page for Sandboxing Mac OS X Applications
New Metropolis UI Applications for VCL and FireMonkey
- Embarcadero® RAD Studio XE3 presents Metropolis UI, designed for the Windows® 8 platform.
- See Developing Metropolis UI Applications
FireMonkey Changes for XE3 (FM2)
Support has been added for the following features in FireMonkey release 2 (FM2):
- New and revised FireMonkey application wizards -- see IDE Changes for XE3.
- See a list of new and changed FireMonkey units in New Units and Changes in FireMonkey XE3.
- Actions: FireMonkey now supports actions and action lists, two features that were previously supported only in VCL:
- Important: Every FireMonkey or VCL application that uses actions must specify the System.Actions and System.Classes units in the
usessection (or in#includefor C++). For more information, see Changes in Implementation of VCL Actions and Implementation of Actions in FireMonkey and VCL.
- FireMonkey and VCL framework-independent action features are implemented in the RTL, in the following units:
- System.Classes (TBasicAction and TBasicActionLink classes)
- System.Actions (TContainedAction, TContainedActionLink, and so forth)
- FireMonkey framework-specific action features are implemented in FMX units such as:
- Using the Action List editor (same as with VCL), you can group FMX actions in FMX action lists and assign actions from lists to UI elements.
- FMX actions cannot be managed with the VCL Action Manager editor.
- Important: Every FireMonkey or VCL application that uses actions must specify the System.Actions and System.Classes units in the
- Touch and Gestures:
- FireMonkey now has support for receiving touch and gesture events in Windows and Mac OS X: see Gestures in FireMonkey.
- FireMonkey supports:
- The same set of gestures that are also supported by VCL: see Gesturing Overview and Gesture Support in Metropolis UI Applications.
- The standard gestures
- Interactive gestures for Metropolis UI applications (igZoom, igPan, igRotate, igTwoFingerTap, and igPressAndTap)
- Touch target support for expanding the touch target of individual components.
- For descriptions of the Windows 8 gestures, see http://msdn.microsoft.com/en-us/library/windows/apps/hh761498.aspx
- FireMonkey does not yet support custom gestures.
- Styles:
- FireMonkey styles can now be built in the Bitmap Style Designer.
- FireMonkey supports Metropolis UI applications and controls (Windows 8 style). See:
- You can enable Retina styles for the Macbook Pro with Retina display: FMX.Styles.TStyleDescription.RetinaDisplay
- New unit: FMX.Styles, which contains TStyleManager
- Styled Non-Client Area: FireMonkey now supports styling the non-client area (form border) of FireMonkey forms on both Windows and Mac OS X.
- Audio-video
- FireMonkey offers support for capturing media data (audio and video). For this purpose the following classes are introduced:
- TCaptureDevice, which is the base class for capturing devices.
- TCaptureDeviceManager, which offers the possibility to access and manage capturing devices.
- FireMonkey offers support to play media files (audio and video). The TMedia class is introduced to support playback for media sources.
- For easy access, the nonvisual component TMediaPlayer is introduced.
- For displaying video files, the TMediaPlayerControl component is introduced.
- FireMonkey offers support for capturing media data (audio and video). For this purpose the following classes are introduced:
- FireMonkey 3D enhancements
- A new context shader creates and defines FireMonkey filters, materials and context for 3D objects.
- The new FMX.Types3D.TTexture class replaces the use of bitmap textures. This class uses GPU memory to store real data. TTexture is a limited class, but offers support for textures with different pixel formats, behavior and styles.
- The new material system is based only on shaders, and allows an unlimited variation of lighting and materials in one application. A material is linked to 3D objects through the TMaterialSource object that can be positioned anywhere in a form. The existing material can be found in the new FMX.Materials unit and at design time in Tool Palette under the Materials category.
- Regarding importing 3D models, the textures are correctly imported. For more information, about importing 3D models, see the Importing a 3D Model in a FireMonkey Application tutorial.
- Layout management: new FireMonkey layouts simplify the arrangement of controls in a FireMonkey application.
- For more details about layout management, see FireMonkey Layouts Strategies.
- Text layout is also supported.
- Anchors - Anchored controls "stick to" the sides of containers, and also stretch, if so specified. You can use anchors to arrange FireMonkey controls.
- FireMonkey Sensor Components:
- Non-visual components for using device sensors have been added, and you can see them in the Sensors tab of the Tool Palette:
- The Location Sensor (for both Windows and Mac OS X)
- The Motion sensor (for Windows)
- Refactoring: Some platform-neutral FireMonkey types and math functions have been moved from FMX to the RTL (in the System unit). For details, see RTL Changes for XE3.
- Virtual keyboard is now supported.
- DirectX 10 is now supported.
LiveBindings Changes for XE3
- Introduction of the new visual LiveBindings Designer--this is the main tool you use when creating LiveBindings. Now you can:
- Visually connect control members and data.
- Replace prototype data with real client datasets with a single click.
- Visually add and bind to additional component properties.
- Easily identify bindable members using the color coded component properties shown in the designer.
- Zoom the designer window.
- Save your bindings diagram to a file on the hard disk.
- Easily hide visual elements or place them on different layers.
- Launch the designer by right-clicking the Bind Visually command on the Form Designer.
- Customize several LiveBindings options through a new LiveBindings Options in the Tools > Options dialog box.
- The LiveBindings Wizard was also introduced.
- Existing LiveBindings components have been updated in order to work with the new LiveBindings Designer.
- Added the possibility to create data sources (TPrototypeBindSource or TBindSourceDBX) from within the LiveBindings Wizard. The TPrototypeBindSource component can be used for quick prototyping of applications.
- Using a TPrototypeBindSource, now you can bind multiple properties of different objects to the same data.
- A set of Quick Binding Components have been introduced in order to make LiveBindings links seamless. These Quick Binding Components produce auto-generated expressions for easily linking objects.
- LiveBindings can now be seamlessly created from one control to multiple controls, using the LiveBindings Designer.
- Added LiveBindings menu in the Object Inspector.
- TBindNavigator has been added for cycling through records in a dataset when developing VCL applications.
- Added new LiveBindings components in the palette: TPrototypeBindSource, TBindSourceDBX.
- LiveBindings now supports FMX.Grid.TGrid components.
- Availability of the
LiveBindings Designerproperty in the Object Inspector that can control the LiveBindings Designer's Layers and Visibility. - LiveBindings is integrated with Action Lists--common LiveBindings actions have been added.
- Removed the old style of creating LiveBindings (such as Link to DB Field, manual bindings, and manual notifications).
Database Changes for XE3
- Easier interactions are supported with InterBase ToGo databases, using a new dbExpress driver: IBToGo Driver.
- TSQLMonitor is available for ODBC and SQLite.
- DBX driver metadata has been extended to support querying whether a vendor supports schemas.
- Support has been added for SQLite databases through the new SQLite driver for both Windows and Mac OS X.
- New
Data.DbxSqlite.FailIfMissingproperty is introduced that determines whether the database connection fails if the database does not exist. For more information, see Data.SqlExpr.TSQLConnection.Params. -
VendorLib,LibraryName, andGetDriverFuncproperties are no longer published on TSQLConnection and should not be used. - DataSnap-related DSSession functionality is now available in the Datasnap.DSSession unit instead of the former Datasnap.DSService unit.
- Enhanced the Data Explorer.
- Enhanced DataSnap Mobile Connectors support for latest versions of iOS, Android and BlackBerry.
- Integrated support for sample InterBase databases for quick application prototyping.
C++Builder Changes for XE3
- Building Static Packages: The C++ compiler (BCC32.EXE) now does a double build in order to separately generate dynamically linked libraries and static packages. Therefore, the following options are no longer needed and are no longer available on the C++ Linker page of Project Options:
- Generate import library (-Gi)
- Generate static package library (.lib) (-Gl)
- For more information, see Building Static Packages.
- The top-level Directories and Conditionals page in Project Options has been renamed to C++ (Shared Options). No other changes have been made on this page.
- The following new PCH-related option has been added to the C++ Compiler Advanced page in Project Options:
Minimum contiguous memory allocation block size (in MB)
- The following option has been added to the C++ Compiler Directories and Conditionals page in Project Options:
Add the Project Dir to Include path
- New type trait function: __is_closure.
Installing Xcode Command Line Tools on Mac OS X 10.7 (Lion)
For C++ OS X development, Xcode is required on the target Mac. A clean install of the Mac OS X 10.7 (Lion) operating system, even with Xcode, does not contain /usr/include. Thus for Lion, you also need to install the Xcode command-line tools.
- For instructions on installing the necessary Xcode tools, see Connecting Your PC to a Mac.
- For more information about OS X development, see Mac OS X Application Development.
VCL Changes for XE3
- New and revised VCL wizards -- see IDE Changes in XE3.
- In XE3 you can develop VCL applications for the Metropolis UI, using the VCL Metropolis UI Application wizard.
- Actions: To provide actions in the FireMonkey framework, some changes have been implemented in VCL and RTL units. Framework-neutral action features (those supported in both FireMonkey and VCL) have moved from VCL to RTL:
- Some VCL actions functionality is now implemented in the RTL:
- New System.Classes.TBasicAction and System.Classes.TBasicActionLink classes implement the most basic actions features.
- Some VCL actions-related functionality has moved from Vcl.ActnList into the following System.Actions classes: TContainedAction, TContainedActionLink, TContainedActionList, TCustomShortCutList, TActionListEnumerator, EActionError.
- All global procedures, types, and variables that existed in Vcl.ActnList are now found in System.Actions. These are CreateAction, RegisterActions, RegisterShortCut, and others.
- Important: In all VCL applications that use actions, you need to ensure that the System.Actions and System.Classes units appear in the
usessection of your application (or in#includefor C++). For more information, see: - Important: During compilation of applications that use actions, warnings indicating that some types are obsolete can appear. For example, the TImageIndex type is now declared in the System.UITypes unit. The Vcl.ImgList unit also still contains the declaration of the same Vcl.ImgList.TImageIndex type (for compatibility), however, this declaration is treated as obsolete, and the warning is generated. In order to decrease the number of warnings, you can include System.UITypes right after Vcl.ImgList. If this is impossible, use the explicit reference to the unit, such as:
FImageIndex: System.UITypes.TImageIndex;
- Some VCL actions functionality is now implemented in the RTL:
- VCL Styles:
- The VCL Style Designer has been renamed Bitmap Style Designer.
- You can use the Bitmap Style Designer to convert VCL styles to FireMonkey styles, so if you are converting a VCL project to FireMonkey, you can convert the VCL project's style as well.
- Styles are now supported for individual elements of a control. See:
- Standard border styles are now supported. See:
- The VCL Style Designer has been renamed Bitmap Style Designer.
- Animated fade effects are now supported in VCL controls such as TButton and TBitBtn. See: Vcl.Themes.TStyleManager.AnimationOnControls
RTL Changes for XE3
- Global Variables Deprecated; Use FormatSettings Instead: Twenty global variables in System.SysUtils, which have been deprecated for several years, have now been removed from the product. Examples: CurrencyDecimals, LongTimeFormat. For more information, see Global Variables.
- Actions: To provide actions in FireMonkey framework some corrections are implemented in VCL and RTL units. Framework-neutral actions features (supported in both FireMonkey and VCL) have been moved from VCL to RTL:
- New System.Classes.TBasicAction and System.Classes.TBasicActionLink classes are created in the RTL System.Classes unit.
- Implementations of some actions-related functionality are moved from the VCL Vcl.ActnList unit into the new RTL System.Actions unit.
- For more details see the Actions sections in FireMonkey Changes for XE3 and VCL Changes for XE3 in this topic.
- Refactoring: Some platform-neutral FireMonkey types and math functions have been moved from FMX to the RTL (in the System unit):
- From FMX.Types: Vector
- New: tagVECTOR, tagVECTOR3D
- From FMX.Types3D: TMatrix3D, Point3D, ]TQuaternion3D, TVector3D, Vector3D
- Methods in FMX.Types3D that work with TVector3D have been refactored. For example, FMX.Types3D.Vector3DAdd is now System.Types.TVector3D.AddVector3D.
- Some newly documented methods:
- Three new helper types (TSingleHelper,TDoubleHelper, and TExtendedHelper) replace the following record types: TSingleRec, TDoubleRec, TExtendedRec, extensively.
IDE Changes for XE3
Changes in File > New Menu
- New wizards for Delphi and C++Builder:
- VCL Metropolis UI Application
- FireMonkey Metropolis UI Application
- These wizards offer the following choices:
- Blank Metro Desktop Application
- Grid Metro Desktop Application
- Split Pane Metro Desktop Application
- Changed: FireMonkey Desktop Application wizards for Delphi and C++Builder:
- These wizards offer the following choices:
- HD FireMonkey Application (previously available in XE2)
- 3D FireMonkey Application (previously available in XE2)
- These wizards offer the following choices:
Changes in Project > Options Dialog Box
- New IDE solution for sandboxing, code-signing, provisioning, and productbuild of your Mac OS X applications (this is required only if you want to submit your application to the Mac App Store):
- New Entitlement List page enables you to select the entitlements you want your Mac OS X applications to have.
- New Provisioning page allows you to specify your Apple developer certificate and your distribution certificate for provisioning your Mac OS X application. (The same page occurs in Tools Options.)
- Mac OS X Application Development describes how to sandbox, code sign, provision, and productbuild your application using either the IDE (the recommended solution) or manual steps.
- The Version Info page now has three Build Options:
- Do not change build number has always been the default.
- Auto increment build number has been restored from XE.
- Auto generate build number has been retained from XE2.
- The top-level Directories and Conditionals page in Project Options has been renamed to C++ (Shared Options). Other than the name change, nothing is different on this page.
Changes in Tools > Options Dialog Box
- New Provisioning page allows you to specify a project-global Apple developer identity and your provisioning profile, required for developing OS X applications. (The same page occurs in Project Options.)
Convert to Metro Command
You can now convert an existing VCL or FireMonkey form to a Metro style form. For more information, see Convert to Metropolis UI Form.
Application Samples Changes for XE3
For information about the samples that are installed with the product, see Samples Descriptions.
- Metropolis UI samples (FireMonkey):
- FlipViewDemo
- EmbeddedGlyphDemo Sample
- FlyoutDemo
- Other FireMonkey samples:
- CustomCaptureDevice
- DemoActions
- CustomTreeView
- ScrollableFormDemo
- TextLayoutDemo
- VideoCaptureHD
Online Help Changes for XE3
- The topics Creating a FireMonkey Component (Delphi) and Creating a FireMonkey Component (C++) have been revised and expanded into a 5-step tutorial.
- Some notable new help topics:
"Show Protected Members" on Class Pages
Before XE2 Help Update 5, class members were divided into separate lists of Declared Members and Inherited members:
Now, all class members are listed together, sorted into Methods, Properties, Events, and Fields (similar to the sorting used in Delphi 7 and C++Builder 6):
By default, only the Public and the Published members are displayed on the class pages. The new Show Protected Members checkbox enables you to include or exclude protected members on the current page:
See Also
- Installation Notes for XE3
- Release Notes for XE3
- Release Notes for XE3 Update 2
- What's New in C++Builder 64-Bit Windows (includes XE3 Update 1)
- Readme - Help Update 1 for Delphi and C++Builder XE3
- Readme - Help Update 2 for Delphi and C++Builder XE3
- Readme - Help Update 3 for Delphi and C++Builder XE3


