Delphi 10.1 Berlin Update1下载破解激活

官网下载地址:
http://altd.embarcadero.com/download/radstudio/10.1/delphicbuilder10_1.iso
ftp://ftpd.embarcadero.com/download/radstudio/10.1/delphicbuilder10_1.iso
破解激活
Update1: http://altd.embarcadero.com/download/radstudio/10.1/delphicbuilder10_1_upd1.iso

What's New

The Berlin release contains the following new and improved features.

Improved Installation Experience

We have improved the installation experience of RAD Studio to make it much more customizable.

There is a new Installer now that quickly installs a very basic version of RAD Studio that you can use as a plain text editor.

Afterwards, the new Feature Installer lets you select the RAD Studio features (programming languages, target platforms, and more) that you want to have in your initial RAD Studio installation. Only the selected features are installed, which can save you bandwidth, time and disk space.

Later, you can add or remove features from RAD Studio at any time using the new Feature Manager.

Some of the software that the RAD Studio installer from Seattle used to include is now available from theGetIt Package Manager instead. SeeOptional Additional Software in theInstallation Notes for more information.

The RAD Studio installer from Seattle is still available as the Offline Installer, which you can use if your system cannot have a working internet connection during the installation.

See Installation for installation instructions and additional information.

FireMonkey

Android 6.0 Support

Android 6.0 (API Level 23) is now supported.

Address Book for iOS and Android

On mobile platforms (Android and iOS), FireMonkey supports the TAddressBook component that lets your applications access the device Address Book. The basic features of this component are as follows:

  • Sending a request to access a device Address Book and getting the access status.
  • Accessing all sources defined in the device Address Book.
  • Fetching all or individual contacts from specified source.
  • Fetching all contacts from specified group(s).
  • Editing or removing existing contacts and groups.
  • Creation of new contacts.
  • Creation of new groups.

For more information and samples, see TAddressBook, and Mobile Tutorial: Using an Address Book Component (iOS and Android).

Improved Style Designer

The Style Designer has undergone several changes and improvements, such as:

  • Clipboard, keyboard and multi-selection support on the Structure view.
  • Preview panel
  • Zooming support
Delphi 10.1 Berlin Update1下载破解激活_第1张图片

New ListView Item Designer

The listview control now supports a new type of item appearance (also available for the edit mode), DynamicAppearance, that you can use to customize the content of every item in your list view: labels, images, buttons, and so on.

You can also right-click your list view on the Form Designer and select the newToggle DesignMode entry to enable a visual list view item editor that allows you to visually customize the controls of the items of your list view:

Delphi 10.1 Berlin Update1下载破解激活_第2张图片

In this design mode, you can use the Object Inspector to add new elements to your list view item design, and use both the Object Inspector and the Form Designer to customize them.

Extended Clipboard Support Service

FireMonkey now has the IFMXExtendedClipboardService interface that adds new features. For example, theIFMXExtendedClipboardService interface allows you to:

  • Register custom user format.
  • Copy/paste data in the custom user format.
  • Get the clipboard value directly.

Improvement on the Image List Editor

Now, the Add Images dialog box of the Image List Editor allows you to add multiple images at once.

TGrid Improvements

  • TGridOption.AutoDisplacement andTGridOption.CancelEditingByDefault added to make it easier to edit grid cells on a mobile device with the virtual keyboard.
  • TCurrencyColumn - New class to implement grid columns that holdCurrency values.
  • TGlyphColumn - New class to implement grid columns that hold images fromTImageList lists of images. The TGrid.Images property is added to specify the list of images.
  • Caution: The new FMX.Grid.Style unit is created. This unit must be included in one of the uses clauses of each project using the FMX.Grid unit. Since legacy projects do not include the FMX.Grid.Style unit, to compile a legacy project, one needs to include the FMX.Grid.Style unit explicitly. Notice that the FMX.Grid.Style unit is added automatically if you edit any file in your project.

High DPI Support on Windows

FireMonkey provides multi-resolution styles for Windows, which provide support for 120 DPI and 144 DPI monitors.

Improved Support for Accelerator Keys

Now, the Accelerator Keys support is available for the following controls:

  • TLabel
  • TButton
  • TRadioButton
  • TTabItem ofTabControl
  • TCheckBox
  • TPopupBox.Items ofTPopupBox
  • TTextControl
  • TPresentedTextControl
  • TCustomAction

Support for Extended Font Styles

TFont gains a new property,StyleExt, to handle fonts that have extended types of weight, slant, or stretch.

Hint Property Changes

In the previous RAD Studio versions, Hint was published in all FireMonkey controls that inherit from TControl. Now, the Hint property is published in the FireMonkey controls listed in Changes of the Hint Property in Berlin.

Warning: Make sure that your applications are not using Hint with any control that is not listed in this table. Otherwise, your applications will not compile.

Simplified Dialog API

Several procedures and functions to show dialog boxes are now deprecated, and have been replaced by the procedures and functions of the newIFMXDialogServiceAsync and IFMXDialogServiceSync platform services that provide support for synchronous and asynchronous dialog boxes, respectively.

The following table summarizes the API changes:

Deprecated Members New Members
  • FMX.Dialogs.ShowMessage*
  • FMX.Dialogs.ShowMessageFmt*
  • FMX.Dialogs.ShowMessagePos
  • ShowMessageAsync
  • ShowMessageSync
  • FMX.Dialogs.MessageDlg
  • FMX.Dialogs.MessageDlgPos
  • FMX.Dialogs.MessageDlgPosHelp
  • FMX.Platform.IFMXDialogService.MessageDialog
  • MessageDialogAsync
  • MessageDialogSync
  • FMX.Dialogs.InputBox
  • FMX.Dialogs.InputQuery
  • FMX.Platform.IFMXDialogService.InputQuery
  • InputQueryAsync
  • InputQuerySync
* ShowMessage and ShowMessageFmt are not really deprecated, but you may want to use ShowMessageAsync or ShowMessageSync instead nonetheless.

Two new helper classes have been created as well: TDialogServiceAsync and TDialogServiceSync. These helper classes provide class methods and functions that allow you to call the new procedures and functions for dialog boxes without the need of an instance of the corresponding dialog boxplatform service.

Other FireMonkey Changes

  • The new AbsoluteTargetRect property of pickers allows you to define the position where a picker should appear.
  • List views show touch animations on Android.
  • AppAnalytics uses HTTPS instead of HTTP.
  • TMediaPlayer now attempts toplay the specified media file with the default codec for the target platform if the extension of the media file has not beenregistered.
  • The Double type has replaced the Extended type.
  • The deprecated StrokeThickness, StrokeCap, StrokeDash, and StrokeJoin properties of TShape are deleted. Use the integrated TShape.Stroke property having the TStrokeBrush type. TStrokeBrush objects have the Thickness, Cap, Dash, and Join properties that should be used instead of the deleted deprecated properties.
  • IFMXWindowService.GetWindowScale is deprecated now. Use theScale property of thehandle of a form to get the scale of its window.

VCL

  • AppAnalytics uses HTTPS instead of HTTP.
  • CreateRoot method from Vcl.Shell.ShellCtrls unit is now virtual. Root fields from the same unit are now protected instead of private.

EMS

Apache Server Support

You can now run the EMS Server and the EMS Console in the Apache server on a production environment.

For more information, see installing and running the EMS Server and the EMS Console in Apache server.

Cross-Domain API Calls to the EMS Server

EMS Server now allows cross-domain calls to its API from different domains. For more information, seeEMS Server API Cross-Domain.

EMS EdgeModules

EMS now supports the new EMS EdgeModules feature, an extension on the EMS Server functionality.

In Berlin, you can run EMS EdgeModules as stand-alone applications and register them in the EMS Server. The EMS EdgeModule communication with the EMS Server is bidirectional.

For more information about this, see EMS EdgeModules.

EMS EdgeModules Resource

The EMS Console now shows two new tables with all the information about EMS EdgeModule and its resources that are loaded in the EMS Server.

The EMS Management Console Application has two new tabs to easily retrieve, update, and delete the data of the registeredEMS EdgeModules and their resources. See Using the EMS Management Console Application for more details about managing theEMS EdgeModules data in the EMS Server.

ThingPoints Overview

Use the new ThingPoint applications to extend the functionality of the EMS Server for the Internet of Things (IoT). A ThingPoint application allows you to collect data from nearbyThingConnect devices, pre- and post-processing IoT data and save it to the EMS Server.

The EMS.ThingPoint IoT Sample demonstrates how to use aThingPoint application to extend the EMS Server and how this data is consumed by an EMS Client application.

For more information about ThingPoint applications, see ThingPoints Overview.

EMS API Resource

A new resource in the EMS server provides API documentation for all the resources and endpoint methods provided by the EMS Server. The API documentation can be consumed in YAML and JSON formats.

For further information see EMS API Resource.

Custom API Documentation

EMS Server provides now the tools to write API documentation for new resources in extended EMS Server packages. The new documentation is created adding attributes to the new resources and endpoints. The API documentation can be exposed in YAML and JSON formats, and can be accessed via HTTP.

For further documentation see Custom API Documentation.

DataSnap

Support for JSON Streaming

New TDBXJSONStream class to support JSON streaming between DataSnap servers and clients.

Use TDBXJSONStream to read or write a stream of JSON objects, but not simultaneously.

Other DataSnap Changes

  • DataSnap no longer depends on OpenSSL or Indy to perform HTTPS requests.

Web Broker

C++ Projects from Previous Versions Using Web.WebReq Need Updating

C++ projects from older versions, such as DataSnap, Web Broker, and Web Services applications using theWeb.WebReq unit, need to update the code for compatibility with RAD Studio Berlin.

These projects need to remove the following line from the cpp project file:

#pragma link "Web.WebReq"

Other Web Broker Changes

  • String handling has been improved:
    • The Web Broker API uses UTF-8 encoding by default, instead of ANSI.
    • Parameter and result types have changed from AnsiString to String, UTF8String, or TBytes.

FireDAC

Improvements for DB2

  • The DB2 native driver and the ODBC bridge driver gained support for DB2 AS/400.
  • New connection definition parameter: TxSupported allowing to disable the FireDAC transaction management.

Improvements for MongoDB

  • Support for database alerts. It uses notifications of insert operations on a MongoDB capped collection. For more information, see Database Alerts (FireDAC).
  • New TMongoDocument.Iterate method to iterate document items. See Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\ListView new demo for details.

Improvements for Advantage

  • For Advantage v12 and later:
    • Improvement on TFDADSBackup and TFDADSRestore to add support for backup archive.
    • Support for GUID data type.
  • Improved support for encrypted tables:
    • Ability to provide a single password for all the tables.
    • Support for the encrypt/decrypt service.

Improvements forInterBase and Firebird

  • New service component, TFDIBInfo, to query server version, license, configuration and usage information.
  • Support for internal streams for BLOB streaming.
  • Support for InterBase array data type. See Object Pascal\Database\FireDAC\Samples\DBMS Specific\InterBase\Arrays new demo for details.
  • TIBRestoreOptions.roReplace replacesTIBRestoreOptions.roCreate.

Improvements for Informix

  • The TFDInfxError class implements support for returning the ISAM error code.
  • New connection definition parameters: TxRetainLocks andTxLastCommitted.
  • Support for pessimistic locking.

Improvements for ODBC

  • New connection definition parameter: ODBCVersion = 3.8 |3.0 that is used to specify the ODBC driver managerbehavior version. Set it to 3.8 when your application uses BLOB output parameters and the ODBC driver supports3.8 behavior version.
  • Support for data type mapping using data type names.

Improvements for Oracle

  • For Oracle 10g and later:
    • Support for query change notifications into TFDEventAlerter. See Object Pascal\Database\FireDAC\Samples\DBMS Specific\Oracle\CQN new demo for details.
  • For Oracle 11g and later:
    • New component, TFDOracleAdmin, to manage an Oracle database instance.
    • Support for 64-bit and unsigned 32-bit integers.
    • Support for implicit ROWID fetching. It is implicitly included into the SELECT … FOR UPDATE SELECT list foreffective dataset editing.
    • Support for network timeouts. New ReadTimeout and WriteTimeoutconnection definition parameters.
  • For Oracle 12c and later:
    • Support for 32K VARCHAR2, NVARCHAR2, and RAW data types.
    • Support for native BOOLEAN in PL/SQL.
    • Support for identity columns, which are recognized as auto-incremental fields.
    • Support for implicit results. You may use NextRecordSet to process them.
    • Improved transaction state detection and synchronization.
    • Support for new authentication modes in the AuthMode connection definition parameter: SYSASM, SYSBACKUP,SYSDG, andSYSKM.

Improvements for PostgreSQL

  • For PostgreSQL 9.2 and later:
    • Support for JSON data type.
    • Support for Range types.
  • For PostgreSQL 9.3 and later:
    • Support for object identifying error fields. To this end, the following properties have been added toFireDAC.Phys.PGWrapper.TFDPgError:
      • SchemaName: contains the name of the schema that contains the database object associated with the error.
      • TableName: contains the name of the table associated with the error.
      • ColumnName: contains the name of the table column associated with the error.
      • TypeName: contains the name of the data type associated with the error.
      • ConstraintName: contains the name of the constraint associated with the error.
  • For PostgreSQL 9.4 and later:
    • Support for JSONB data type.
  • Support for PostgreSQL client and server version 9.5.
  • Improved support for constrained arrays:
    • New connection definition parameter: ArrayScanSample that is used to determine whether arrays are mapped toftArray orftDataSet.
    • The TFDParam.ArrayType=atTable can be used to send arrays to server.

Improvements for SQLite

  • SQLite binaries updated to version 3.9.2.
  • For SQLite v3.8.9 and later:
    • Support extended info about index columns, including whether they are descending or ascending, or whether they are base columns or expression columns.
    • Support for indexes on expressions.
  • For OS X:
    • Prebuilt, optimized client library. You should deploy libcgsqlite3.dylib when you build applications for OS X that use FireDAC and SQLite.
    • Support for static linkage, using libcgsqlite3.dylib.
    • Support for encryption.

Other FireDAC Changes

  • TFDDataSet.Reconcile no longer commits reconciled changes by default. Also, if you pass True to TFDDataSet.Reconcile, reconciled changes are committed always, even ifUpdateOptions.AutoCommitUpdates isFalse.
  • The type of TFDVersion changed from Int64 to UInt64.
  • The FireDAC.Phys.ODBCBase and FireDAC.Phys.ODBCWrapper units have been moved from the FireDACODBCDriver240.bpl package to theFireDACCommonODBC240.bpl package.
  • You can specify a set of merging options in calls to TFDDataSet.MergeDataSet.

dbExpress

  • dbExpress no longer depends on OpenSSL or Indy to perform HTTPS requests.

Cloud Service

Amazon

AmazonAPI gains support for:

  • Deleting all messages in a queue.
  • Managing the lifecycle of the objects in a buckets with GetBucketLifecycleXML, SetBucketLifecycle and DeleteBucketLifecycle.

Azure

  • AzureAPI now supports the following API versions:
    • Microsoft Azure Blob Service: API Version 2015-02-21
    • Microsoft Azure Table Service: API Version 2015-02-21
    • Microsoft Azure Queue Service: API Version 2015-02-21
  • Support for append blobs:
    • You can now create append blobs.
    • You can append data to existing append blobs.
  • Improved access policy support:
    • Added support for access policies on queues and tables.
    • TPolicy and its subclasses (TBlobPolicy,TQueuePolicy,TTablePolicy) replace TAccessPolicy, which is now deprecated.
  • Improved lease support for blobs and blob containers:
    • Added support for leasing containers and other operations related to container leases.
    • Now, you can change the identifier of a blob lease.
    • When you acquire a blob lease, you can now propose an identifier for the new lease.
  • Service properties and statistics:
    • Added support for properties of the blob service, the queue service, and the table service.
    • Added support for statistics of the blob service, the queue service, and the table service.
  • Azure services provide a new property, Timeout, which you can use to define a timeout for your requests.

REST Client Library

  • The REST.Exception unit is now deprecated. Its classes belong to theREST.Types unit now.

LiveBindings

  • Evaluation shortcuts are a new feature of some binding components, enabled by default, which greatly improves the performance of LiveBindings when populating list-based or table-based controls using simple binding expressions. SeeUsing Evaluation Shortcuts.
  • The TConverterUtils class from System.Bindings.Outputs is now public. TConverterUtils provides a set of utilities for assigning/converting one type of value to another type of value.

ThingConnect

Note: ThingConnect IoT device components are available as separate downloads via the GetIt Package Manager.

ThingConnect is a new technology that provides components to build applications that can interact with all kinds of Internet of Things (IoT) devices. For more information, see the ThingConnect documentation.

BeaconFence

Note: BeaconFence is available as a separate download via the GetIt Package Manager. For BeaconFence installation instructions, see the following page.

We have added new features to BeaconFence in RAD Studio Berlin. The BeaconFence enhancements include:

  • Detect zones using Position or PositionInPath.
  • Beacons support on Windows platform.
  • Customize function of current position.
  • Support for Eddystone Beacons.
  • Improved calculation performance.
  • New drawing ability.
  • Added two properties to access last calculated positions:
    • LastRawPosition
    • LastPathPosition
  • New feature to enable/disable Beacons by program. The UseToPositioning property indicates whether the beacon is going to be used to calculate the position or not.

RTL

Bluetooth LE and Beacon Support on Windows 10

RAD Studio Berlin provides the new WinRT Bluetooth API that supports Bluetooth Low Energy and Beacons on the Windows 10 platform. Now, you can run appplications on Windows 10 that allow you to:

  • Scan for BLE devices that advertise data.
  • Send and receive BLE advertising data.
  • Send custom BLE advertising data through the manufacturer-specific data.
  • Use beacons with iBeacon and AltBeacon formats.

Improved Bluetooth LE Discovery Performance

The RTL provides a new BLE scan filter implementation that takes advantage of the new BLE low consumption chips.

Now, you can scan for specific BLE devices using customized independent scan filters. To that end you can:

  • Create your filter as a TBluetoothLEScanFilter.
  • Specify the fields you want to filter your devices by.
    • Optionally, for those devices that use ManufacturerSpecificData such as AltBeacons and iBeacons, you can use the TBeaconManufacturerDataHelper helper class, in order to filter by this data. Then pass theTBeaconManufacturerDataHelper content to the filter.
  • Finally, add the filter to the filter list and start discovering devices with the new implementation of StartDiscovery.

Bluetooth LE Includes New Events to Handle Subscriptions to Characteristics

The TBluetoothLE component provides two new events to handle suscriptions to GATT server characteristics:

  • OnCharacteristicSubscribed is triggered when a remote device subscribes to one of the GATT server characteristics.
  • OnCharacteristicUnSubscribed is triggered when a remote device unsubscribes from one of the GATT server characteristics.

OnConnect andOnDisconnect events, already existed and have been now included in the TBluetoothLE component:

  • OnConnect event triggers when you connect to a remote GATT server device.
  • OnDisconnect event triggers when you disconnect from a remote GATT server device.

Eddystone Beacon Format Support

The RTL adds support to use beacons with Eddystone format. There are three possible types:

  • EddystoneUID: The beacon broadcasts an identifier that consists of aNamespace and an Instance.
  • EddystoneURL: The beacon broadcasts aURL in a compressed format.
  • EddystoneTLM: The beacon broadcaststelemetry information in relation to the beacon status.

Improved Beacon Scan Performance

The addition of new BLE scanning filters allows to improve the beacon framework in order to:

  • Scan for anytype of beacon at the same time.
  • Scan for non-registered beacons.

Now, you do not need to register a beacon you want to monitor. Instead, you can:

  • Set the Extended mode on your TBeacon device.
  • Specify the non-registered beacons to monitor in the ModeExtended property.
  • Use the new StartScan method in order to scan for the specified beacons.

Note: The last step allows to scan for several kind of beacons simultaneously.

For further information, see how to register beacons and how to scan for beacons.

TBeaconDevice Component Supports Eddystone Beacon Format

The addition of the Eddystone beacons allows to provide support for this format in the TBeaconDevice component.

Now, the TBeaconDevice allows you to run applications on your BLE device that advertise proximity data with thespecificationsof an Eddystone beacon.

You can select EddystoneUID and EddystoneURL formats through the BeaconType property.

Platform support:

  • Android devices allow to advertise the Eddystone format with version 5.0 or higher.
  • iOS devices only allow to advertise iBeacon frames.
  • Windows devices do not admit the Eddystone format since the WinRT API for BLE does not allow to customize the advertisedServiceData.

App Tethering Improvements

App tethering gains the following features:

  • Two new network adapters that provide multicast support for IPv4 and IPv6. You can configure your manager to use them.
  • You can specify a range of IPv4 addresses as the target of a remote manager discovery.
  • Log filtering support. You canenable of disable logging for specific items of the app tethering architecture.
  • Profiles can now control whether or not they allow connection requests from remote profiles. As a result:
    • The TTetheringProfile.OnConnectProfile event has been divided inOnBeforeConnectProfile and OnAfterConnectProfile.
    • The TTetheringDisconnectEvent event type has been renamed as TTetheringProfileEvent.

Asynchronous HTTP Request Support

You can now send HTTP requests asynchronously so that the execution of your application does not stop during a download.

If you use the HTTP client components, see Making Requests Asynchronous. If you use the HTTP client API, see THTTPClient.

Encrypted ZIP File Support

TZipFile provides anevent (or a callback) that you can handle to decompress encrypted ZIP files, such as password-protected ZIP files, when youextract them.

Improvements to Lists of Strings

TStrings and subclasses such asTStringList gain the following features:

  • AddPair, to add key-value pairs to the list of strings usingfluent-style coding.
  • KeyNames, to obtain a list of keys from a list of strings that contain key-value pairs.
  • Options, to easily control many of the boolean properties of the list of strings.
  • SetStrings, to copy the strings from anotherTStrings object. It is similar to Assign, but without coping the multiple properties that Assign copies.
  • TrailingLineBreak, which determines whether or not theText property must contain a line break after the last line.
  • Updating, which indicates whether or not the list of strings is in the middle of an update.
  • UseLocale, which determines the implementation that the list of strings must use for string comparison.
  • ExtractName gained a new field (AllNames) that determines the return of ExtractName when the string to parse is not a key-value pair.

TStringList also gains new overloaded constructors, to make it easier to create initialized instances ofTStringList.

Improvements to TMemIniFile

TMemIniFile gained the following features:

  • You may specify the value for the CaseSensitive property in the call to the constructor.
  • The new Modified property indicates whether the INI file has been modified since it wasloaded from disk.
  • The new AutoSave property determines whether the instance of TMemIniFile shouldsave any change to disk when destroyed.

Buffering Support for TFileStream

TFDFileStream has been moved from FireDAC.Stan.Util to System.Classes and has been renamed to TBufferedFileStream.

TBufferedFileStream is aTFileStream descendant that optimizes multiple consecutive small writes or reads. In other words,TBufferedFileStream adds buffering support to TFileStream.

Note: TBufferedFileStream does not give performance gain for random position reads or writes, or large reads or writes.

Modified JSON Path Syntax to Access Object Properties

Supported JSON path syntax to access object properties that contain dots in their names has changed in Berlin:

Syntax Example Seattle Berlin

root."child.name"

YesC++11Feature.png
 

root["child.name"]

YesC++11Feature.png
YesC++11Feature.png

root['child.name']

 
YesC++11Feature.png

Optimization of Regular Expressions and String Replacement

The use of regular expressions is now optimized in two ways: the execution time and the memory consumption.

Regarding the execution time, the following table shows an example of the speedup using the optimized regular expressions on Windows and Android platforms. These examples were calculated for a simple regular expression parse (170 kB file).

Platform Execution Time (ms) Speedup
Before Optimized
Windows (Intel i7, Windows 7) 5900 29 ~310x
Android (Motorola E(2nd gen), Android 5.0.2) 47075 420 ~111x
Note: The values of speedup shown in this table are specific for this example. The speedup that you may obtain could vary depending on the specific regular expression and the processing machine.

Regarding the memory consumption optimization, now, a huge number of matches does not significantly affect the consumption of memory.

The performance of the StringReplace function has been improved as well.

HTTP Connection Improvements

  • Two new timeouts: ConnectionTimeout and ResponseTimeout for the HTTPframework and component.

URLEncode / URLDecode Functions

URL Encoding and Decoding functionality has been moved to System.NetEncoding.

System.Net.URLClient.TURI.URLEncodeandSystem.Net.URLClient.TURI.URLDecode functions are now deprecated. Use System.NetEncoding.TURLEncoding.URLDecode and System.NetEncoding.TURLEncoding.Encode instead.

New functions added to System.NetEncoding:

  • EncodePath
  • EncodeAuth
  • EncodeQuery
  • EncodeForm

UseTMessageBase Instead of TMessage for C++ Projects

TMessage class fromSystem.Messaging has been renamed to TMessageBase in order to avoid ambiguities in C++ projects that include other units that also handle messages, such asWinapi.Messages.

TMessage remains now an alias toTMessageBase.

C++ Functions added to TRect, TRectF, TPoint, and TPointF Types

New C++ functions added to System.Types:

  • TRect
  • TRectF
  • TPointF
  • TPoint

Other RTL Changes

  • The OnConnectedDevice and OnDisconnectDevice events of TBluetoothGattServer gain Android support.
  • The string types UTF8String and RawByteString are now supported on iOS and Android.
  • The Parallel Programming Library now includes a new record, TThreadPoolStats, that you can use to grab a snapshot of the internal state of athread pool for diagnostic purposes.
  • The getters of THTTPResponse are now public, you no longer need to use the IURLResponse or IHTTPResponse interfaces to use them.
  • The EOperationCanceled class from the System.Threading unit has been renamed to EOperationCancelled and moved to the System.SysUtils unit.
  • The RTL has removed the Winapi.ActiveX unit dependency from the Winapi.Winrt unit.
  • The ShowMessage procedure is now asynchronous on iOS.
  • The ToString function from the TTimeSpan type is now public.
  • HTTP Client support for automatic decompression of agzipcontent encoding response.

Native APIs

  • The Android Bluetooth LE API, included in the Androidapi.JNI.Bluetooth unit, has been updated with new classes and methods according to the changesintroduced in API level 21 for Android 5.0 or higher.
  • RAD Studio provides new units for DirectX 12.
  • Units for WinRT are now easier to use.

Delphi Compilers

Performance Improvement when Compiling Generics

Delphi compilers have undergone several changes regarding generics, which resulted in the following improvements:

  • Parsing generics is up to three times faster.
  • Performance of DCC32, DCC64 and DCCOSX when linking projects that use generics extensively has been improved.

Attributes Supported by All Compilers

Now, all Delphi compilers support the following attributes:

  • unsafe
  • volatile
  • weak

Other Delphi Compiler Improvements

  • The memory allocated to conditional symbols has been extended from 256 bytes to 4096 bytes.
  • The size of Extended is now 16 bytes to be compatible with BCCOSX.
  • To enforce visibility semantics, class and record helpers cannot access private members of the classes or records that they extend.

C++ Compilers

Upgraded BCCAARM and BCCIOSARM

BCCAARM andBCCIOSARM have been updated to use Clang 3.3 and LLVM 3.3.

Better C++ Support for Delphi Types

In Clang-enhanced C++ compilers:

  • You can use range-based for loops and STL iterators for strings and for the following RTL containers and derived containers: DynamicArray, TCollection, and TEnumerable.
  • You can use lambda expressions in calls to TParallel::For, TTask::Create or TTask::Future.

C++ Option Changes

In Clang-enhanced C++ compilers:

  • The -PC command-line option used to enable parallel compilation on the command line is now deprecated. Use--jobs= instead. For more information seeusing parallel compilation.
  • The -fmath-errno command-line option, which is used to require the math functions to indicate errors, is now configurable from theIDE. You can find it on the Floating Point Options from Project > Options > C++ Compiler > Advanced. By default, it is enabled for theClang-enhanced C++ Compilers.

Other C++ Compiler Changes

  • Now, the BCC32C compiler provides dependency checking. The Make command compiles only those files that have changed since the last build, as well as files whose dependencies have changed.
  • The compiler-rt library is now available for BCC32C and BCC64.

IDE

Floating Form Designer

You can now detach the form designer in both, VCL and FireMonkey. You can enable or disable the embedded designer in theForm Designer Options. To detach the form designer, go to Tools > Options > Form Designer, clear the Embedded designer check box,and clickOK. The changes take effect next time you start the IDE.

FireUI Live Preview

FireUI Live Preview is a new tool included in RAD Studio to broadcast the active form of the application being designed to several devices simultaneously to see how the application design looks in real time.

FireUI Live Preview consist of two parts:

  • FireUI Live Preview (IDE): The IDE acts as a server managing the connections from the devices.
  • FireUI App Preview: The client application that the target devices need to connect to an IDE instance.

FireUI Live Preview (IDE) needs no additional installation and comes with the default configuration. To configure additional IDE options, see FireUI Live Preview (IDE Options).

For information on how to obtain the client, see How to Obtain FireUI App Preview.

GetIt Dependencies

New project options page to manage GetIt dependencies.

In this dialog box you can set the dependencies of the project in relation to GetIt Package Manager packages.

You can find the GetIt Dependencies options page in Project > Options > GetIt Dependencies.

Bookmark Stack

The bookmark stack is a method of navigating through your source code, adding bookmarks to your code in a pile order; you can then navigate back through your bookmarks moving to the last bookmark of the pile, therefore to the last bookmark that was placed.

For further details, see Stack Bookmarks and Using the Bookmark Stack.

Selection Expansion

The selection expansion allows you to select the identifier under the cursor and expand the selection to larger syntactic groups such as statement, line, block, method, and so on. Use theCTRL+W shortcut to start and expand the selection.

For further details, see Selection Expansion.

Method Toxicity Metrics

The new Method Toxicity Metrics project page (Project > Method Toxicity Metrics) shows metrics about the functions of your active project that you may use to find methods that are good candidates for refactoring. You can export your metrics in CSV format, and customize the thresholds for key metrics in the newToxicity Metrics options page.

Structure View Improvements for C++

The Structure View has undergone several improvements for C++, such as:

  • Support for C++11 features, such as alias templates or initializer lists.
  • Support for functions that return a function pointer.
  • Support for unnamed bit fields.
  • Improved support for throw.

Android Service Improvements

  • New wizard to automatically remove Android Service projects from Multi-Device Applications.
  • Project Dependencies automatically enabled:
    • This option allows that all the Android Service projects added to a Multi-Device Application are automatically built before the main application.

For further details, see Creating Android Services.

Support for Running iOS Ad hoc Applications

Now, you can run iOS applications that are built using the Ad hoc platform configuration from the IDE.

Customizable info.plist File

You can customize your info.plist file for OS X and iOS applications.

Design-Time Improvements for Android Smart Watches

Now, the Form Designer provides:

  • Two specific views for Android smart watches.
  • A preview of the design area for four different Android smart watches.

For more information see Creating Applications for Android Smart Watches.

New Options Page for File Associations

In previous versions, you had to select which file extensions you wanted to associate with RAD Studio during the installation process.

You can now configure RAD Studio file associations on the new File Association options page.

New Option to Show Information Messages from the Delphi Compiler

Now, the IDE allows you to show information messages from the Delphi compiler in theMessages View output tab.

In Project > Options > Delphi Compiler, you can check the Show general messages option for your project.

New Option to Hide/Show theNavigation Toolbar

Now, the IDE allows you to hide the Navigation Toolbar in the Code Editor.

The new Show Navigation Toolbar option is located at Tools > Options > Editor Options > Display.

See How to Hide the Navigation Toolbar for more information.

High DPI Awareness

The IDE has become DPI-aware. It provides a better user experience on systems that use a DPI value higher than 96 PPI.

Other IDE Changes

  • The CPU View supports debugging iOS and Android applications.

Debuggers

iOS and Android Debuggers

  • Improved support for Delphi Dynamic Arrays.

64-bit iOS Debugger

The 64-bit iOS debugger gains the following features:

  • Unicode support.
  • Improved support for Delphi arrays, strings, and characters.
  • Support for non-zero-based arrays.
  • Support for evaluating properties and variants.
  • Ability to define breakpoints in C++ header files.

Utilities

  • The Java2OP.exe tool now works with JDK 8.
  • New SdkTransform.exe tool. It can be used to convert Objective-C or C++ headers to Delphi headers.

Sample Applications

New sample applications added to Berlin:

  • C++ version of samples:
    • RTL.RegExpression FMX sample.
    • RTL.RegExpression VCL sample.
    • VCL.Windows 10 SharingContract sample.
  • EMS samples:
    • EMS.ThingPoint IoT sample.
    • EMS.APIDocAttributes sample.
  • FireMonkey samples:
    • FMX.Remote Service Demo sample.
    • FMX.Birthday Reminder Demo sample.
    • FMX.SimplePhysics sample.
    • FMX.StreamingMedia sample.
  • FireDAC samples:
    • FireDAC.InterBase Arrays sample.
    • FireDAC.PostgreSQL Ranges sample.
    • FireDAC.PostgreSQL Arrays sample.
    • FireDAC.SQLite Encryption sample.
    • FireDAC.Oracle CQN sample.
    • FireDAC.MongoDB ListView sample.
  • RTL samples:
    • RTL.ExtendedBeaconScanner sample.
    • RTL.HttpAsyncDownload sample.

你可能感兴趣的:(Delphi)