What's New
Go Up to Main Page
Go Up to What Was New in Past Releases
The Seattle release contains the following new and improved features.
- Note: For compatibility with OS X 10.11 (El Capitan) and iOS 9, see OS X 10.11 and iOS 9 Notes.
Contents
- 1 C++ Compilers
- 2 FireMonkey
- 2.1 FireMonkey Supports Windows 10
- 2.2 Drag and Drop onto Other Applications on OS X
- 2.3 New FireMonkey Styles
- 2.4 New FireMonkey Native Windows Presentation
- 2.5 Tab Scrolling in a Tab Control
- 2.6 Removal of TCalendar Size Constraints
- 2.7 The Native iOS List View Supports Custom Appearances
- 2.8 FireMonkey Visual Controls can Display Hints on Mouse-over
- 2.9 Touch Animation for Android
- 2.10 System Notifications Move to the RTL and Gain Windows Support
- 2.11 FireMonkey Style Designer
- 2.12 New GetFirstWeekday Function
- 2.13 Styled Presentation Constructors Receive the Data Model and Control
- 2.14 Refactoring of the List View Control
- 2.15 TStyledPresentationProxy Replaces All Styled Presentation Proxy Classes
- 2.16 Refactoring of TCalendar
- 2.17 Other FireMonkey Changes
- 3 VCL
- 4 RTL
- 4.1 Registering Your Application to Handle Android Intents
- 4.2 JSON Improvements
- 4.3 Running Asynchronous Remote Actions
- 4.4 GATT Server Support for Android 5
- 4.5 Support for Internationalized Domain Names
- 4.6 Support for SHA-2 Hashing
- 4.7 Bluetooth Improvements
- 4.8 Refactoring of the App Tethering Communications
- 4.9 Other RTL Changes
- 5 IDE
- 5.1 Memory Improvements
- 5.2 New Android Service Project
- 5.3 Improved Support for Multi-Monitor Configurations
- 5.4 Integration of the Castalia Features in the IDE
- 5.5 AutoRecover
- 5.6 Changing the Font Size of the Code Editor
- 5.7 Subversion Libraries Update in the IDE
- 5.8 GetIt Package Manager Improvements
- 5.9 Renamed Labels in OS X - Application Store Provisioning Page
- 5.10 New Option to Allow iOS 9 Applications to Access non-SSL URLs
- 5.11 New Option to Add Support for Background Execution on iOS
- 5.12 New Option to Enable High-DPI Awareness in Your VCL Applications
- 5.13 Object Inspector Improvements
- 5.14 New Icons for the Structure View
- 5.15 New Default Value for InstallLocation Parameter in Android Manifest
- 5.16 New Option to Hide Non-visual Components at Design-time
- 5.17 New Look and Feel for the Select Directory Dialog
- 5.18 Tools API Improvements
- 5.19 Improved Support for Older Project Import
- 6 Database Changes
- 7 Cloud
- 8 Debugger Changes for Seattle
- 9 Testing Framework Changes for Seattle
- 10 Integrated Frameworks and SDKs
- 11 Help
- 12 OS X 10.11 and iOS 9 Notes
- 13 Topics
C++ Compilers
New Clang-enhanced C++ Compiler for 32-bit Windows
BCC32C is a Clang-enhanced C++ compiler for 32-bit Windows. BCC32C allows you to take advantage of many C++11 features, and it makes it easier to maintain a single code base to target both 32-bit and 64-bit Windows.
BCC32C does not replace BCC32; RAD Studio lets you choose which compiler you want to use for each of your projects. BCC32 is the default C++ compiler for 32-bit Windows. To switch a project to BCC32C, select Project > Options > C++ Compiler and, under Classic Compiler, disable the "Use 'classic' Borland compiler" option.
Updated Clang and LLVM Versions
BCC32C and BCC64, Clang-enhanced C++ compilers for Windows, are both updated to Clang 3.3 and LLVM 3.3.
Parallel Compilation for Clang-enhanced C++ Compilers
In Seattle, you can enable parallel compilation in Clang-enhanced C++ compilers to significantly decrease compilation time in systems with multi-core processors.
Previous-generation C++ Compilers __property Keyword Limitation
The BCC32 and BCCOSX compilers do not support the default
keyword on indexed properties. See __property - Compiler Support for more information.
New Constant for Clang-enhanced C++ Compilers
The RTLVersion constant is not supported by Clang-enhanced C++ compilers. Instead, you may use RTLVersionC.
FireMonkey
FireMonkey Supports Windows 10
FireMonkey fully supports creating native applications for Windows 10. The framework automatically detects the target platform, loads and displays the appropriate native style at run time, without you needing to add a stylebook or any code.
Drag and Drop onto Other Applications on OS X
IFMXDragDropService, the FireMonkey platform service that provides support for drag-and-drop operations, now supports dragging data from a FireMonkey application onto another application.
New FireMonkey Styles
New Windows 10 FireMonkey styles included on Seattle: Win10Modern.Style, Win10ModernBlue.Style, and Win10ModernDark.Style.
Access the FireMonkey styles at C:\Users\Public\Documents\Embarcadero\Studio\17.0\Styles
.
New FireMonkey Native Windows Presentation
The following controls now support native presentation on the Windows platform:
See how FireMonkey controls support Z-order for Windows.
For more information about native Windows controls, see FireMonkey Native Windows Controls.
Tab Scrolling in a Tab Control
The TTabControl component supports tab navigation with scrolling when the width of all the tabs does not fit in the tab control width. To use this feature, you need to set the FullSize property to False
.
When the width of all the tabs does not fit in the tab control width, at design time, you see the right and left buttons that indicate that scrolling to hidden tabs is possible at run time. In devices that have touch screen, you can slide the tabs to move them. In devices that do not have touch screen, to scroll between the tabs, you can use the right and left buttons, as well as the mouse scroll. The right and left buttons appear only at design time, and at run time if the device does not have touch screen.
You can change the height of the tab items. To change the height, the AutoSize property needs to be False
.
Removal of TCalendar Size Constraints
RAD Studio Seattle does not have size constraints for the TCalendar component.
You can now change the Height and Width of the TCalendar, and even set the Align property to Client
.
- Note: The TCalendar size constraints have also been removed for iOS native calendar components; you can change the size of the native calendars for iOS 6 or later.
The Native iOS List View Supports Custom Appearances
You can use custom appearances in native iOS list view controls.
FireMonkey Visual Controls can Display Hints on Mouse-over
FireMonkey visual controls now support hints on desktop platforms. To set a hint, enter the text in the Hint property of the control in the Object Inspector and set the ShowHint property to True
. See Using Hints to Show Contextual Help in a FireMonkey Application for more information on how use hints.
- Note: Hints are supported on Windows and Mac OS X 10.10 or newer.
Touch Animation for Android
Touch animations have been included in Seattle for the Android platform. This new type of animation simulates the touch animation from Google Material Design guide.
You do not need to do anything to enable or disable the animation, it is enabled by default. The animation is included for the TListBox and for buttons such as TButton, TCornerButton, and TSpeedButton.
See the TTouchAnimationAdapter class, the TActiveStyleObject.TouchAnimation and the TButtonStyleObject.TouchAnimation properties for further details.
System Notifications Move to the RTL and Gain Windows Support
The FMX.Notification
unit has been replaced by System.Notification.
The TNotificationCenter component now supports Windows 8 and later Windows versions. This component has also undergone some minor changes:
- It provides a Loaded property to check whether the notification center is ready to use or not.
- The type of ApplicationIconBadgeNumber has changed from Word to Integer.
- Its
Supported
method is no longer necessary and has been removed.
The TBaseNotificationCenter class has replaced the IFMXNotificationCenter
interface. Classes that used to implement the IFMXNotificationCenter
interface must become subclasses of TBaseNotificationCenter and implement the virtual abstract methods of their parent class.
FireMonkey Style Designer
Platform Styles
The FireMonkey Style Designer allows now setting a different style for each different platform of your project, at design time. Just one TStyleBook can now manage a collection of styles.
Control Customization
RAD Studio allows now component customization for different platforms at design time.
For more information, see Mobile Tutorial: Using a Button Component with Different Styles (iOS and Android).
New Bitmap Links Editor
A new editor allows graphic edition for TBitmapLink properties on styled objects, directly inside the IDE.
TBitmapLink properties can be edited now in an easy and visual way using the BitmapLinks Editor.
For more information, see BitmapLinks Editor and Tutorial: Using the BitmapLinks Editor.
More Improvements
- New toolbar to load, save, and clear .style files.
- Different backgrounds for style editing. You can choose no background or a light/dark one. The color helps you see how the customized control fits over dark and light colors.
- Selecting and managing the different style layout objects and components directly in the Style Designer.
- Adding new controls to the Style Designer by double-clicking the control in the Tool Palette.
New GetFirstWeekday Function
FireMonkey provides the new GetFirstWeekday function within the IFMXLocaleService interface.
GetFirstWeekday returns the first day of the week in a unified format that is platform independent.
- Note: GetLocaleFirstDayOfWeek is deprecated. Use GetFirstWeekday instead.
Styled Presentation Constructors Receive the Data Model and Control
In Seattle, styled presentation classes receive both their data model and their presented control in their constructor, which makes creating presentation classes much easier.
To port your presentation classes from XE8 to Seattle, remove any code that you have for the delayed initialization of the data model and the presented control, and move that code to your constructor instead.
Refactoring of the List View Control
Many members that used to be in TCustomListView
are now in a different class or even a different unit. Members that went into a different class continue being a part of TCustomListView
through inheritance.
For a detailed list of changes, see Refactoring of the List View Control in Seattle.
TStyledPresentationProxy Replaces All Styled Presentation Proxy Classes
Styled presentation classes no longer need to define a proxy class. The new TStyledPresentationProxy class can be used to create a proxy object for any styles presentation class. All existing styles presentation proxy classes have been removed:
XE8 | Seattle |
---|---|
|
Refactoring of TCalendar
TCalendar changes:
- TCustomCalendar has been introduced as base class for controls that display a month calendar. Now
TCalendar
inherits fromTCustomCalendar
. Both classes are located in the FMX.Calendar unit.
- The new TouchTargetExpansion property has been added.
TStyledCalendar changes:
- TryFindDayItem method added to get access to the list box item that represents a TCalendar Day.
- The
TStyledCalendar.FillList
method that was in XE8, has now being separated in the following different procedures:
Other FireMonkey Changes
- Now you must cast TListView.Selected as a Appearances.TListViewItem to use it as such.
- A number of constants that represent file extensions were modified to fix a spelling mistake. For example,
SBMPImageExtention
is nowSBMPImageExtension
. These constants are located in theFMX.Consts.pas
file. - The protected
FDisableDayChange
field of TStyledCalendar has been replaced by the published DisableDayChange property. Also,TStyledCalendar
publishes now its style objects: Years, Month, Weeks, Week, Days, Today, Prev, Next. - The TouchTargetExpansion property of TDateEdit and TTimeEdit is now published.
- The constructor of TTintedStages requires its owner style object as a parameter.
- New TSwitch presentation and behaviour for Windows 10. For example, the background color changes on mouse over when the switch is on.
- The default mode of TMultiView is
NavigationPane
in Windows 10. See Navigation Pane Mode for further details. - New Style Viewer for Windows 10 Style in the Bitmap Style Designer.
- Enhanced clipboard support to allow copying and pasting bitmaps. See the samples in:
C:\Users\Public\Documents\Embarcadero\Studio\17.0\Samples\Object Pascal\Multi-Device Samples\User Interface\CopyPaste
C:\Users\Public\Documents\Embarcadero\Studio\17.0\Samples\CPP\Multi-Device Samples\User Interface\CopyPaste
- The new TBeaconDevice class allows you to simulate that a device with BluetoothLE is a beacon. See the BeaconDevice sample.
- TListBoxSelector provides an alternative to MouseSelectFinish, which the list box executes before the OnItemClick event of the list box component occurs: MouseSelectFinishing.
- Controls gain the following protected methods: EnabledChanged, PaddingChanged, and VisibleChanged. When the value of Enabled, Padding or Visible changes in a control, that control executes the matching method.
VCL
New VCL Windows 10 Controls
The following controls are added to the VCL:
- TRelativePanel: RelativePanel is a new layout panel that lets you position and align child objects in relation to each other or the parent panel. For example, you can specify that some text will always be positioned to the left side of the panel, and that a button will always be placed below the text. Use ReleativePanel when creating user interfaces that do not have a clear linear pattern as an alternative to TGridPanel.
- TSplitView: The new SplitView control allows you to easily show and hide transient content. For example, you may use it as a top level navigation menu where the navigation content is hidden and slides in when needed (so called hamburger menu).
- TToggleSwitch: The toggle switch mimics a physical switch that allows users to turn things on or off. The control has two states: on and off. You can modify or remove the caption labels of the toggle switch.
- TActivityIndicator: An
indeterminate
progress ring indicator. This indicator lets you choose between several types and allows you to modify many visual properties, such as size, speed of animation, indicator color. - TSearchBox: An edit control that provides search capabilities, similar to FireMonkey TSearchBox.
These controls are made specifically for Windows 10, but support all Windows versions.
Sample aplications for the new VCL Windows 10 controls demonstrate the usage and the functionality of these controls:
New TSharingContract Component
TSharingContract component brings support for contracts, the system mechanism for sharing information with other Windows 10 applications. Applications can behave like contract sources using the new SharingContract component.
See Windows Dev Center - App contracts and extensions for more information on app contracts and sharing.
New VCL Styles
- New Windows 10 VCL styles included on Seattle: Windows10, Windows10 Blue, and Windows10 Dark.
- New OnyxBlue style.
Access the VCL styles by going to Project > Options > Application > Appearance.
VCL Styling Improvements
- Support for styling common dialogs. See SystemHooks for more information.
- TWebBrowser component now supports styling.
For more information about VCL styling, see Working with VCL Styles.
Modernized Select Directory Dialog
SelectDirectory has been modified in order to display a modernized Select Directory dialog. Use the third signature of the SelectDirectory function and define your set of options as a TSelectDirFileDlgOpts.
RTL
Registering Your Application to Handle Android Intents
In XE8, the only way to receive intents was with local or push notifications. In Seattle, the built-in RAD Studio Java library Androidapi.JNI.Embarcadero
allows registering your application to handle any given type of intent action.
Check out the Android intents sample application to see how to handle simple data from another application using Android intents.
- Note: To be able to handle Android intents, you must add the corresponding
<action>
tag to the<intent-filter>
section of the AndroidManifest.xml file.
JSON Improvements
The System.JSON scope has been extended with many new units that provide support for:
- BSON, a binary alternative to the JSON format.
- JSON readers and writers, to generate and parse JSON data on the fly, without first building a complete JSON tree in memory.
- MongoDB extended JSON, an extension to the JSON format to support additional data types. You can enable this JSON extension in JSON readers and writers using their
ExtendedJsonMode
property.
Also, TJSONObject.ParseJSONValue and TJSONObject.Parse allow creating a TJSONBool value from the parsed data.
Running Asynchronous Remote Actions
Use the new RunRemoteActionAsync method to run remote actions asynchronously. By using asynchronous actions, the function that calls this method is not blocked until the remote action finishes.
For more information about this, see Running Remote Actions.
GATT Server Support for Android 5
In Seattle you can create a Bluetooth Low Energy server on Android 5.
Support for Internationalized Domain Names
The HTTP framework now supports Internationalized domain names (IDN). There are two new public methods available: TURI.UnicodeToIDNA and TURI.IDNAToUnicode.
Support for SHA-2 Hashing
The System.Hash unit has a new member, THashSHA2, that implements the SHA-2 family of hash functions.
Bluetooth Improvements
- The new ScannedAdvertiseData property of TBluetoothLEDevice allows you to access the data that a remote device advertises as an instance of TBluetoothLEAdvertiseData, so that you can easily read useful information, such as its manufacturer-specific information.
- TBluetoothGattServer.AddService allows you to indicate whether you want the added service advertised (default) or not.
- TBluetoothLEManager.StartDiscovery supports a new parameter,
ForceConnect
, to connect to all discovered remote devices to obtain a complete list of services that each remote device provides. This allows you to filter remote devices based on the services that they provide, regardless of whether they advertise them or not. - New TBluetoothUUIDHelper helper class to work with different formats of Bluetooth UUIDs.
Refactoring of the App Tethering Communications
The base class for app tethering profiles, TTetheringProfile, implements now the aclogic to parse app tethering commands (which was previously implemented in base class for app tethering protocols) as well as the logic to handle remote profiles and connections, which was previously implemented on its child class TTetheringAppProfile.
For a detailed list of changes, see Refactoring of the App Tethering Communications in Seattle.
Other RTL Changes
- THashSHA2.GetHMACAsBytes, THashSHA1.GetHMACAsBytes and THashMD5.GetHMACAsBytes now accept the
Data
and theKey
parameters either as a string or as bytes. - GetSharedDocumentsPath now returns a different path on the Android platform. The new path points to a system-wide directory on the external storage.
- TThreadPool provides a new class property, Current, which exposes the thread pool of the current task.
- TZipFile class now has a callback that you can use to query the current progress of the operation. See TZipFile.ExtractZipFile and TZipFile.OnProgress for more information.
IDE
Memory Improvements
In Seattle, the RAD Studio IDE includes some notable improvements related to memory consumption and management:
- The IDE can now use up to 4 GiB of memory, it is no longer limited to 2 GiB.
- Note: IDE extensions must support large memory addresses.
- The IDE memory management of open projects has improved. The IDE can now handle a higher number of open projects.
New Android Service Project
RAD Studio provides a new Delphi type of project to create Android services.
The new type of project covers the different types of services: local and remote, and includes support for asynchronous tasks using intents.
The Android Service project consist of a Data Module to create the methods and events for the service. Building the project creates the binary files that the main application needs, such as the Java archive file (.*JAR), according to the selected type of service.
To create an Android Service:
- The IDE provides a new wizard to create the Android Service project.
- The IDE provides a new wizard to add Android services to a Multi-Device Application.
For more information see Android Service, and Creating Android Services.
Improved Support for Multi-Monitor Configurations
Seattle improves user experience in multi-monitor configurations.
Integration of the Castalia Features in the IDE
Some of the Castalia features have been embedded in the IDE for RAD Studio Seattle:
- Clipboard History: Shows the items stored when you copy text. You can find the Clipboard History window in View > Clipboard History.
- MultiPaste: Allows you to modify text you copied before pasting it. You can find the MultiPaste window in Edit > MultiPaste.
- Project Statistics: Shows the time spent in the different areas of our project. You can find the Project Statistics window in View > Project Statistics.
- Navigation Toolbar: Displayed in the Code Editor to help you move through your code. The Navigation Toolbar includes the Project Symbol Search.
- Sync Prototypes: Feature to synchronize the interface and implementation copies of your methods.
- Structural Highlighting: Highlights the code structure with lines, as well as the use of procedures that interrupt the linear flow execution in your code. You can find further options for this feature in the Structural Highlighting options page.
- Smart Keys: Provides shortcuts to place the cursor at the beginning of the line or text; as well as a fast way to surround your code with "()", "[]", or "{}". These features can be enabled or disabled from the Key Mappings options page.
AutoRecover
The AutoRecover feature allows you to recover your files when the IDE closes unexpectedly.
You can find further settings for the AutoRecover feature in the AutoRecover options page.
Changing the Font Size of the Code Editor
You can increase or decrease the size of the font in the Code Editor using the context menu of the Code Editor, or using keyboard shortcuts:
- Use the Increase Font Size and Decrease Font Size options available in the Code Editor Context Menu to increase and decrease the font size.
- Use the Ctrl+Num + and Ctrl+Num - keyboard shortcuts to increase and decrease the font size respectively. Visit Keyboard Mappings Index to see more shortcuts.
Subversion Libraries Update in the IDE
In Seattle, RAD Studio includes Subversion libraries version 1.8.13.
For more details about version control systems integrated in the IDE, see Subversion Integration in the IDE and Version Control Systems in the IDE.
GetIt Package Manager Improvements
The following improvements have been added to GetIt Package Manager in Seattle:
- New improved UI for the GetIt Package Manager Window.
- Ability to filter packages by category.
- In RAD Studio Seattle Subscription Update 1, there is a new options page at Tools > Options > GetIt where you can configure the GetIt Package Manager to check for package updates upon start.
Renamed Labels in OS X - Application Store Provisioning Page
Provisioning options for code-signing an OS X application for the Application Store have been renamed to 3rd Party Mac Developer Certificate and 3rd Party Mac Installer Certificate, to match the names that Apple uses for those certificates.
For more information about code signing applications, see the Provisioning page.
New Option to Allow iOS 9 Applications to Access non-SSL URLs
- Note: This only affects RAD Studio Seattle Subscription Update 1.
New option in Project > Options > Entitlement List to enable HTTP protocol requests on iOS 9.0. This option is enabled by default.
New Option to Add Support for Background Execution on iOS
Now the IDE allows you to include in the Info.plist
support for background execution mode on iOS application.
In Project > Options > Version Info you can add to the array key UIBackgroundModes
the string values for the services that require to continue running in the background.
New Option to Enable High-DPI Awareness in Your VCL Applications
Now the IDE allows you to enable High-DPI Awareness in your VCL applications.
In Project > Options > Application you can check the Enable High-DPI option for your project.
Object Inspector Improvements
- A new filter box shows properties or events that match the specified pattern. The new option is located under the Instance List from the Object Inspector.
- More granularity for the Object Inspector. A new Show option on the context menu allows to show or hide the different parts of the Object Inspector.
- Instance List
- Filter Box
- Quick Action Panel
- Description Panel (hidden by default)
- Status Bar
The new options can also be accessed on Tools > Options | Environment Options > Object Inspector.
For more information, see Object Inspector Options.
New Icons for the Structure View
The icons on the Structure View correspond now to the icons on the Tool Palette. The thumbnails help you to easily spot the application components on the Structure View.
New Default Value for InstallLocation Parameter in Android Manifest
The new default value for the InstallLocation parameter in the Android application manifest file is auto
. See the Android Version Info section for more information. Changing this value in your older projects may help solve some specific debugging problems.
New Option to Hide Non-visual Components at Design-time
The IDE now allows you to hide or show non-visual components at design-time.
New Look and Feel for the Select Directory Dialog
The IDE now displays a modernized Select Directory dialog for folder searching. The Select Directory dialog allows you to type or paste a folder path.
For example, you can find this dialog in the File Finder ( Ctrl-Shift-F
).
Tools API Improvements
- Editor Drawing Interface: New drawing Tools API interfaces have been added to extend the code editor in order to improve custom painting.
See how to extend the IDE using the Tools API.
Improved Support for Older Project Import
Seattle supports import of projects from Delphi 1 through XE8 and C++Builder 3 through XE8.
Database Changes
DataSnap
Compressed Transmission of FireDAC Datasets
In Seattle, transmission of FireDAC datasets between a DataSnap server and a DataSnap client is compressed. As a result, both server and client consume roughly a third of the memory that they would consume if built using XE8.
Some DataSnap Client Applications no Longer Require OpenSSL
Some Datasnap client applications no longer requires OpenSSL for HTTPS support:
- A DataSnap client with TDSRestConnection does not need OpenSSL.
- A DataSnap client with TSQLConnection may need OpenSSL.
- Note: DataSnap client applications that use filters need to install OpenSSL libraries.
New DataSnap Demo Samples
RAD Studio includes now two new samples of the use of the FDSchemaAdapter in DataSnap applications:
- The FireDAC sample in
Object Pascal\DataSnap\FireDAC
. - The FireDAC DBX sample in
Object Pascal\DataSnap\FireDAC_DBX
.
FireDAC
Optimization of FireDAC ETL components
TFDBatchMoveSQLWriter supports all the possible TFDBatchMove data movement modes.
- Note: The
dmAppendUpdate
mode is only supported when the database supports MERGE, INSERT OR REPLACE or similar DML commands.
Support for the NoSQL MongoDB Database
In Seattle, FireDAC includes complete support for the NoSQL MongoDB database.
Use the new FireDAC connection driver, the API classes and the new components to develop applications that connect to the MongoDB database.
See Connect to a MongoDB database with FireDAC for details.
Connecting to a MongoDB Database
Use the new FireDAC MongoDB driver to establish the connection to the MongoDB database.
- Use the new driverID Mongo as the DriverName in the TFDConnection component.
- New TFDPhysMongoDriverLink component and the FireDAC.Phys.MongoDB unit.
MongoDB Wrapping Classes
FireDAC now includes new wrapping classes to encapsulate MongoDB database commands, methods, and structures:
- TMongoConnection: class to manage connections to a MongoDB server, access databases and object collections.
- TMongoDatabase: class to manage a MongoDB database, collections and users in the MongoDB database.
- TMongoCollection: class that represents a MongoDB collection.
- TMongoCursor: class that fetches a result set document from a MongoDB cursor.
MongoDB Commands and Methods Builders
FireDAC now supports MongoDB query, pipeline and update commands, with fluent style command and method builders.
- TMongoUpdate: represents the MongoDB Update builder.
- TMongoSelector: represents the MongoDB Selector builder.
- TMongoInsert: represents MongoDB Insert builder.
- TMongoIndex: represents MongoDB Index definition builder.
New MongoDB DataSets
FireDAC MongoDB specific datasets retrieve and manage the data from a MongoDB database.
- Use the TFDMongoDataSet component to attach the dataset to the MongoDB cursor.
- Use the TFDMongoQuery component to execute queries to the MongoDB collections.
- Use the TFDMongoPipeline component to execute pipelines to the MongoDB collection.
Enhancements to the ODBC driver
The ODBC driver for FireDAC has been improved:
- If you use the ODBC driver and a Pervasive 10 database, by default the NumericFormat parameter is
String
.
Other FireDAC Changes
- AutoCommitUpdates property has been moved from TFDDataSet to TFDUpdateOptions.
- AutoCommitUpdates property has been moved from TFDSchemaAdapter to TFDUpdateOptions.
- UpdateOptions property has been introduced in TFDSchemaAdapter.
- When AutoCommitUpdates is True then ApplyUpdates removes all the changes that have been successfully applied for all the records in the dataset change log.
- TFDTable.FetchOptions.LiveWindowParanoic is now
True
by default. - You can now omit the
AParams
parameter in calls to TFDConnection.ExecSQL if your SQL statement is not parametrized, instead of passing a nil parameter. - Use the new parameter in the Informix native driver, TxSupported, to indicate whether the Informix database supports SQL transactions or not. For more information, see Connect to Informix (FireDAC).
REST Client Library and BaaS
- TRESTRequestParameterList.AddItem accepts values as arrays of bytes or streams.
- TCustomRESTRequest has a new read-only property, Body, that you can use to read a body that you previously define using AddBody.
- The REST Client Library and BaaS now support the use of JSON readers and writers.
- The TParseDate type supports Parse Date object in the correct format.
{
"__type": "Date",
"iso": "2015-08-25T18:32:12.265Z"
}
Cloud
Cloud API no Longer Requires OpenSSL
Both AmazonAPI and AzureAPI no longer require OpenSSL for HTTPS support.
Some Members of CloudAPI are Deprecated
- Encode64 is deprecated, use TNetEncoding.Encode (on base64 property).
- EncodeBytes64 is deprecated, use TNetEncoding.EncodeBytesToString (on base64 property).
- Decode64 is deprecated, use TNetEncoding.Decode (on base64 property).
- DecodeBytes64 is deprecated, use TNetEncoding.DecodeStringToBytes (on base64 property).
- XMLEscape is deprecated, use TNetEncoding.Encode (on HTML property).
Amazon
- AmazonAPI now supports the latest API versions:
- Amazon Simple Storage Service (S3):
API Version 2006-03-01
- Amazon Simple DB:
API Version 2009-04-15
- Amazon Simple Queue Service (SQS):
API Version 2012-11-05
- Amazon Simple Storage Service (S3):
- AmazonAPI now supports AWS Signature version 4:
- This change is transparent for the user.
- The API uses the AWS Signature version 4 wherever possible, but maintains backwards compatibility.
Azure
- AzureAPI now supports the latest API versions:
- Microsoft Azure Blob Service:
API Version 2014-02-14
- Microsoft Azure Table Service:
API Version 2014-02-14
- Microsoft Azure Queue Service:
API Version 2014-02-14
- Microsoft Azure Blob Service:
- The method for leasing a blob now allows you to specify a
LeaseDuration
parameter. See Microsoft Azure - Lease Blob for more information about the newLeaseDuration
parameter.
Debugger Changes for Seattle
Remote iOS 64-bit Device Debugging
In Seattle, debugging iOS64 applications is now supported. In the IDE, F9 is now enabled when iOS Device 64-bit is the target platform.
For more information about remote debugging support for 64-bit iOS applications, see Debugging Apps Running on the 64-bit iOS Device.
Improved OS X Exception Handling
Seattle better handles exceptions on OS X.
Testing Framework Changes for Seattle
In Seattle, RAD Studio extends DUnitX unit testing support for mobile platforms (iOS and Android). This testing framework enables you now to develop and execute tests against your iOS Device, Android and iOS Simulator.
For further information, see DUnitX Overview.
Integrated Frameworks and SDKs
- Microsoft Windows 10 SDK is now installed with RAD Studio Seattle. RAD Studio Seattle also supports the following SDKs:
- Microsoft Windows 8.x SDK
- Microsoft Windows 7 SDK
- RAD Studio Seattle now supports Windows RT API (Windows Runtime API) and the Windows API.
Help
Sample Applications Include Better Readme Files
The project subfolders within the sample applications folder now include HTML readme files generated from the content of the sample applications documentation. These readme files contain detailed information about each sample application, including a description, steps to run the sample application, and links to related help resources.
Libraries Documentation Shows Unit Packages
Unit pages in the libraries documentation now show which package contains each unit. If you want to know which package includes a certain unit, open the API reference page of that unit, such as System.SysUtils or FMX.Controls.
For some of the terms most commonly searched on the online topics documentation, we now provide disambiguation pages or redirections to help you find the documentation that you want more easily. For example, search for datasnap, android, paserver, or listview.
OS X 10.11 and iOS 9 Notes
PAServer Hotfix for RAD Studio Seattle
This Hotfix provides fixes for:
- Building OS X 10.11 (El Capitan) applications
- Building iOS applications that run on iOS 7, iOS 8 and iOS 9 using the iOS 9 SDK.
You can download the Hotfix from: http://cc.embarcadero.com/item/30398