新機能

提供: RAD Studio
移動先: 案内検索

メインページ への移動

目次

Berlin リリースでは、以下のような新機能の追加や既存機能の改良が行われています。

インストール作業の改善

RAD Studio のインストール作業を改善して、もっとカスタマイズできるようにしました。

プレーン テキスト エディタとして使用できる非常に基本的なバージョンの RAD Studio を迅速にインストールする新しいインストーラが提供されるようになりました。

後ほど、初めてインストールされる RAD Studio に含める RAD Studio 機能(プログラミング言語ターゲット プラットフォーム、その他)を、新しい機能インストーラで選択することができます。選択した機能のみインストールされるので、帯域幅、時間、ディスク領域を節約できます。

後で、新しい機能マネージャを使って、いつでも RAD Studio に対して機能の追加や削除を行えます。

Seattle の RAD Studio インストーラで組み込まれていたソフトウェアの一部は、代わりに[GetIt パッケージ マネージャ]で入手できるようになりました。詳細については、「インストール ノート」の「追加のオプション ソフトウェア」を参照してください。

Seattle の RAD Studio インストーラはオフライン インストーラとして今でも利用可能です。これは、インストール時にシステムをインターネットに接続できない場合に使用することができます。

インストール手順と追加情報については、「インストール」を参照してください。

FireMonkey

Android 6.0 のサポート

Android 6.0(API レベル 23)がサポートされるようになりました。

iOS および Android 向けのアドレス帳

モバイル プラットフォーム(Android および iOS)では、アプリケーションからデバイスのアドレス帳にアクセスできるようにする TAddressBook コンポーネントが FireMonkey でサポートされています。このコンポーネントの基本機能は次のとおりです。

  • デバイスのアドレス帳にアクセスするための要求を送信し、アクセス状態を取得できる。
  • デバイスのアドレス帳に記載されているすべての情報源にアクセスできる。
  • 指定された情報源からすべてまたは個々の連絡先を取得できる。
  • 指定されたグループ(複数可)からすべての連絡先を取得できる。
  • 既存の連絡先やグループを編集または削除できる。
  • 連絡先を新規作成できる。
  • グループを新規作成できる。

詳細とサンプルについては、TAddressBook の API ドキュメントや「モバイル チュートリアル:アドレス帳コンポーネントを使用する(iOS および Android)」を参照してください。

[スタイル デザイナ]の改良

[スタイル デザイナ]には、次のようないくつかの変更や改良が加えられています。

  • [構造]ビューでのクリップボード、キーボード、複数選択のサポート。
  • プレビュー パネル
  • ズーム(拡大/縮小)のサポート
LondonFireMonkeyStyleDesigner.png

新規のリスト ビュー項目デザイナ

リスト ビュー コントロールでは、リスト ビューのあらゆる項目(ラベル、画像、ボタンなど)の内容をカスタマイズするのに使用できる、項目の外見の新しい種類(編集モードでも使用可能)である DynamicAppearance をサポートするようになりました。

また、フォーム デザイナでリスト ビューを右クリックし、新しい[デザイン モードの切り替え]エントリを選択して、リスト ビュー項目のコントロールを視覚的にカスタマイズできるビジュアル リスト ビュー項目エディタを有効にすることもできます。

LondonListViewDesignMode.png

このデザイン モードでは、[オブジェクト インスペクタ]を使用してリスト ビュー項目のデザインに新しい要素を追加することができ、[オブジェクト インスペクタ]フォーム デザイナの両方を使用してそれらの要素をカスタマイズすることができます。

拡張されたクリップボード サポート サービス

FireMonkey には、新しい機能を追加する IFMXExtendedClipboardService インターフェイスが用意されるようになりました。IFMXExtendedClipboardService インターフェイスでは、たとえば、次のことが可能です。

  • カスタム ユーザー形式の登録
  • カスタム ユーザー形式でのデータのコピー/貼り付け
  • クリップボード値の直接取得

画像リスト エディタの改良点

画像リスト エディタ[画像の追加]ダイアログ ボックスでは、複数の画像を一度に追加できるようになりました。

グリッドの改良点

グリッド コントロールプレゼンテーション ロジックデータ モデルがこれらから切り離されました。これは、さまざまな改良点の中でも特に、API の互換性を破る変更で、グリッド コントロールで将来ネイティブ表示をサポートできるようにするために必要なものです。「Berlin での FireMonkey グリッド コントロールの変更点」を参照してください。

警告: グリッド コントロールを使用している古いプロジェクトを Berlin に移行する際は、中でも特に、プロジェクトの uses 句の 1 つに新しい FMX.Grid.Style ユニットを含める必要があります。新しいプロジェクトには、このユニットは自動的に組み込まれます。

Windows での高 DPI のサポート

FireMonkey では High DPI の改善が提供されており(Windows の複数解像度スタイル、など)、120 DPI や 144 DPI のモニタに対するサポートが提供されています。

アクセラレータ キーのサポート強化

次のコントロールでアクセラレータ キーを使用できるようになりました。

拡張フォント スタイルのサポート

TFont には、太さ傾き伸縮という拡張された特性を持つフォントを扱うための新しいプロパティ StyleExt が追加されました。

Hint プロパティの変更点

RAD Studio のこれまでのバージョンでは、TControl を継承するすべての FireMonkey コントロールで Hint の可視性が published になっていました。現在は、「Berlin での Hint プロパティの変更点」に記載されている FireMonkey コントロールで Hint プロパティの可視性が published になっています。

警告: アプリケーションでは、このに含まれていないコントロールで Hint を決して使用しないように気をつけます。そうしないと、アプリケーションがコンパイルされません。

ダイアログ API の簡素化

ダイアログ ボックスを表示するためのいくつかの手続きや関数が非推奨になり、同期ダイアログ ボックスと非同期ダイアログ ボックスをそれぞれサポートする新しいプラットフォーム サービス IFMXDialogServiceAsync および IFMXDialogServiceSync の手続きや関数に置き換わりました。

こうした API の変更点を次の表にまとめます。

非推奨になったメンバ 新規メンバ
  • FMX.Dialogs.MessageDlg
  • FMX.Dialogs.MessageDlgPos
  • FMX.Dialogs.MessageDlgPosHelp
  • FMX.Platform.IFMXDialogService.MessageDialog
  • FMX.Dialogs.InputBox
  • FMX.Dialogs.InputQuery
  • FMX.Platform.IFMXDialogService.InputQuery
* ShowMessageShowMessageFmt は実際には非推奨にはなっていませんが、それでも、ShowMessageAsyncShowMessageSync を代わりに使用する方がよいでしょう。

2 つの新しいヘルパ クラス TDialogServiceAsync および TDialogServiceSync も作成されました。これらのヘルパ クラスには、対応するダイアログ ボックス プラットフォーム サービスのインスタンスがなくてもダイアログ ボックスの新しい手続きや関数を呼び出せるようになるクラス メソッドおよび関数が用意されています。

FireMonkey のその他の変更点

  • ピッカーの新しい AbsoluteTargetRect プロパティにより、ピッカーの表示位置を定義することができます。
  • Android では、リスト ビューにタッチ アニメーションが表示されます。
  • AppAnalytics では、HTTP ではなく HTTPS が使用されます。
  • TMediaPlayer では、指定されたメディア ファイルの拡張子が登録されていない場合、ターゲット プラットフォームのデフォルト コーデックを使って、そのメディア ファイルの再生を試みるようになりました。
  • Double 型が Extended 型に代わって使用されるようになりました。
  • TShape の非推奨プロパティ StrokeThicknessStrokeCapStrokeDashStrokeJoin は削除されました。TStrokeBrush 型の統合プロパティ TShape.Stroke を使用します。TStrokeBrush オブジェクトには、削除された非推奨プロパティの代わりに使用すべきプロパティ ThicknessCapDashJoin があります。
  • IFMXWindowService.GetWindowScale は、非推奨になりました。ウィンドウのスケールを取得するには、フォームハンドルScale プロパティを使用してください。

VCL

  • リボン コントロールは、RAD Studio インストールに含まれなくなりました。[GetIt パッケージ マネージャ]を使って、個別にインストールする必要があります。
  • AppAnalytics では、HTTP ではなく HTTPS が使用されます。
  • Vcl.Shell.ShellCtrls ユニットに定義されている CreateRoot メソッドは仮想メソッドになりました。その同じユニットに定義されているルート フィールドの可視性は、private ではなく protected になりました。

EMS

Apache サーバーのサポート

運用環境の Apache サーバーで EMS サーバーや EMS コンソールを実行できるようになりました。

詳細については、「運用環境への EMS サーバーまたは EMS コンソール サーバーのインストール」を参照してください。

EMS サーバーへのクロスドメイン API 呼び出し

EMS サーバーでは、異なるドメインからの API のクロス ドメイン呼び出しを許可するようになりました。詳細については、「EMS サーバー API クロスドメイン」を参照してください。

EMS エッジモジュール

EMS では、EMS サーバーの機能を拡張した新しい EMS エッジモジュール機能をサポートするようになりました。

Berlin では、EMS エッジモジュールをスタンドアロン アプリケーションとして実行し、それらを EMS サーバーに登録することができます。EMS エッジモジュールと EMS サーバーの通信は双方向に行われます。

この詳細については、「EMS エッジモジュール」を参照してください。

EMS エッジモジュール リソース

EMS コンソールには、EMS エッジモジュールとそのリソース(EMS サーバーに読み込まれているリソース)に関するすべての情報を記載した 2 つの新しい表が表示されるようになりました。

EMS 管理コンソール アプリケーションには、登録されている EMS エッジモジュールとそれらのリソースのデータを簡単に取得、更新、削除するための 2 つの新しいタブが用意されるようになりました。EMS サーバーでの EMS エッジモジュール データの管理の詳細については、「EMS 管理コンソール アプリケーションの使用」を参照してください。

ThingPoint の概要

新しい ThingPoint アプリケーションを使用すると、EMS サーバーの機能を IoT(Internet of Things:モノのインターネット)に対応するように拡張できます。ThingPoint アプリケーションにより、すぐ近くの ThingConnect デバイスからデータを収集し、IoT データを前処理および後処理したうえで、EMS サーバーに保存することができます。

EMS.ThingPoint IoT サンプルでは、ThingPoint アプリケーションを使用して EMS サーバーを拡張する方法と、EMS クライアント アプリケーションでのこのデータの使用方法の例を示しています。

ThingPoint アプリケーションの詳細については、「ThingPoint の概要」を参照してください。

EMS API リソース

EMS サーバーに用意されているすべてのリソースとエンドポイント メソッドの API ドキュメントが EMS サーバーの新しいリソースとして提供されています。この API ドキュメントは YAML 形式および JSON 形式で使用することができます。

詳細については、「EMS API リソース」を参照してください。

カスタム API ドキュメント

EMS サーバーでは、新しいリソースの API ドキュメントを記述するためのツールが EMS サーバーの拡張パッケージに用意されるようになりました。新しいドキュメントは、新しいリソースやエンドポイントに属性を追加して作成されます。これらの API ドキュメントは YAML 形式や JSON 形式で公開することができ、HTTP でアクセスすることができます。

詳細については、「カスタム API ドキュメント」を参照してください。

DataSnap

JSON ストリーミングのサポート

DataSnap サーバーと DataSnap クライアントの間での JSON ストリーミングをサポートする新しいクラス TDBXJSONStream が追加されました。

TDBXJSONStream を使用すると、JSON オブジェクトのストリームを読み取るまたは書き込むことができます(ただし、読み書きを同時には行えません)。

DataSnap のその他の変更点

  • DataSnap クライアントでは、HTTPS 要求を実行するのに OpenSSLIndy を使用する必要はなくなりました。

WebBroker

以前のバージョンで Web.WebReq を使用して作成された C++ プロジェクトは更新が必要

旧バージョンで Web.WebReq ユニットを使用して作成された C++ プロジェクト(DataSnap アプリケーション、WebBroker アプリケーション、Web サービス アプリケーションなど)は、RAD Studio Berlin との互換性を保つため、コードを更新する必要があります。

これらのプロジェクトでは cpp プロジェクト ファイルから次の行を削除する必要があります。

#pragma link "Web.WebReq"

WebBroker のその他の変更点

  • 文字列処理が次のように改善されました。
    • WebBroker API では、ANSI ではなく UTF-8 エンコーディングをデフォルトで使用します。
    • パラメータと戻り値の型が AnsiString から StringUTF8StringTBytes のいずれかに変わりました。

FireDAC

DB2 向けの改良点

MongoDB 向けの改良点

Advantage 向けの改良点

  • Advantage v12 以降の場合:
    • TFDADSBackupTFDADSRestore が改良されて、バックアップ アーカイブをサポートするようになりました。
    • GUID データ型をサポートするようになりました。
  • 暗号化テーブルのサポートが強化されました:

InterBase の改善

Firebird の改善

Informix 向けの改良点

ODBC 向けの改良点

  • ODBC ドライバ マネージャの動作バージョンを指定するのに使用される新しい接続定義パラメータ ODBCVersion(= 3.8 または 3.0)が追加されました。アプリケーションが BLOB 出力パラメータを使用していて、ODBC ドライバが動作バージョン 3.8 をサポートしている場合は、これを 3.8 に設定します。
  • データ型名を使用したデータ型マッピングをサポートするようになりました。

Oracle 向けの改良点

  • Oracle 10g 以降の場合:
    • TFDEventAlerter へのクエリ変更通知をサポートするようになりました。詳細については、新しいデモ Object Pascal\Database\FireDAC\Samples\DBMS Specific\Oracle\CQN を参照してください。
  • Oracle 11g 以降の場合:
  • Oracle 12c 以降の場合:
    • 32K VARCHAR2、32K NVARCHAR2、32K RAW の各データ型をサポートするようになりました。
    • PL/SQL でネイティブ BOOLEAN をサポートするようになりました。
    • ID 列をサポートするようになりました。これは自動インクリメント フィールドとして認識されます。
    • 暗黙的な結果をサポートするようになりました。NextRecordSet を使用して、それらを処理することができます。
    • トランザクション状態の検出と同期が改善されました。
    • 接続定義パラメータ AuthMode で新しい認証モード SYSASMSYSBACKUPSYSDGSYSKM をサポートするようになりました。

PostgreSQL 向けの改良点

  • PostgreSQL 9.2 以降の場合:
    • JSON データ型をサポートするようになりました。
    • 範囲型をサポートするようになりました。
  • PostgreSQL 9.3 以降の場合:
    • オブジェクト識別エラー フィールドをサポートするようになりました。そのために、次のプロパティが FireDAC.Phys.PGWrapper.TFDPgError に追加されました。
      • SchemaName: そのエラーに関連付けられるデータベース オブジェクトが含まれているスキーマの名前を格納します。
      • TableName: そのエラーに関連付けられるテーブルの名前を格納します。
      • ColumnName: そのエラーに関連付けられるテーブル列の名前を格納します。
      • TypeName: そのエラーに関連付けられるデータ型の名前を格納します。
      • ConstraintName: そのエラーに関連付けられる制約の名前を格納します。
  • PostgreSQL 9.4 以降の場合:
    • JSONB データ型をサポートするようになりました。
  • PostgreSQL クライアントおよびサーバー バージョン 9.5 をサポートするようになりました。
  • 制約付き配列のサポートが強化されました:

SQLite 向けの改良点

  • SQLite バイナリがバージョン 3.9.2 に更新されました。
  • SQLite v3.8.9 以降の場合:
    • インデックス列に関する詳細な情報(昇順か降順か、基底列か式列か、など)をサポートするようになりました。
    • 式に対するインデックスをサポートするようになりました。
  • OS X の場合:
    • 最適化されたビルド済みクライアント ライブラリが用意されています。FireDAC と SQLite を使用するアプリケーションを OS X 向けに作成する場合は、libcgsqlite3.dylib を配置しなければなりません。
    • 静的リンケージをサポートするようになりました(libcgsqlite3.dylib を使用)。
    • 暗号化をサポートするようになりました。

FireDAC のその他の変更点

クラウド サービス

Amazon

AmazonAPI では、次の操作をサポートするようになりました。

Azure

  • AzureAPI では、次の API バージョンをサポートするようになりました。
    • Microsoft Azure BLOB サービス: API バージョン 2015-02-21
    • Microsoft Azure Table サービス: API バージョン 2015-02-21
    • Microsoft Azure Queue サービス: API バージョン 2015-02-21
  • 追加 BLOB をサポートするようになりました:
  • アクセス ポリシーのサポートが強化されました:
  • BLOB および BLOB コンテナのリース サポートが強化されました:
  • サービスのプロパティと統計情報:
  • Azure サービスには新しいプロパティ Timeout が用意されるようになり、これを使用して要求のタイムアウトを定義できます。

REST クライアント ライブラリ

  • REST.Exception ユニットは、非推奨になりました。そのクラスは、現在 REST.Types ユニットに属しています。

LiveBinding

  • 評価ショートカットは一部のバインディング コンポーネントの新機能で、デフォルトで有効になっています。これを使用すると、単純なバインディング式を使ってリストベースやテーブルベースのコントロールにデータを設定する際に LiveBinding のパフォーマンスが大幅に向上します。「評価ショートカットを使用する」を参照してください。
  • System.Bindings.Outputs ユニットに定義されている TConverterUtils クラスは public になりました。TConverterUtils には、一方の型の値を別の型の値に割り当てる/変換するための一連のユーティリティが用意されています。

ThingConnect IoT 接続フレームワーク

メモ: ThingConnect コンポーネントは、[GetIt パッケージ マネージャ]で別途ダウンロード可能です。

ThingConnect により、既製およびカスタムの IoT(Internet of Things:モノのインターネット)スマート デバイス、センサ、ウェアラブルが使いやすい API コンポーネントに変わります。詳細については、ThingConnect のドキュメントを参照してください。

BeaconFence

メモ: BeaconFence は、[GetIt パッケージ マネージャ]で別途ダウンロード可能です。BeaconFence のインストール手順については、ここを参照してください。

RAD Studio Berlin では、BeaconFence に新しい機能が追加されました。BeaconFence の機能強化は次のとおりです。

  • Position または PositionInPath を使ったゾーンの検出
  • Windows プラットフォームでのビーコンのサポート
  • 現在位置のカスタマイズ
  • Eddystone ビーコンのサポート
  • 計算パフォーマンスの向上
  • 新しい描画機能
  • 直近に計算された位置にアクセスするための 2 つのプロパティの追加:
    • LastRawPosition
    • LastPathPosition
  • ビーコンの有効/無効をプログラムで切り替える新しい機能。ビーコンが位置の計算に使用されるかどうかが UseToPositioning プロパティで示されます。

RTL

Windows 10 での Bluetooth LE とビーコンのサポート

RAD Studio Berlin には、Windows 10 プラットフォームで Bluetooth LE(低消費電力型 Bluetooth)とビーコンをサポートする新しい WinRT Bluetooth API が用意されています。以下を行えるアプリケーションを Windows 10 で実行できるようになりました。

  • データをアドバタイズする BLE デバイスのスキャン
  • BLE アドバタイズ データの送受信
  • メーカー固有データを通じたカスタムの BLE アドバタイズ データの送信
  • iBeacon および AltBeacon 形式でのビーコンの使用

Bluetooth LE 検出のパフォーマンス向上

RTL には、新しい BLE 低消費電力型チップを活用する新しい BLE スキャン フィルタ実装が用意されています。

カスタマイズされた独立型スキャン フィルタを使って、特定の BLE デバイスをスキャンできるようになりました。そのためには、以下を行います。

キャラクタリスティックのサブスクリプションを処理するための新しいイベントを Bluetooth LE に用意

TBluetoothLE コンポーネントには、GATT サーバー キャラクタリスティックのサブスクリプションを処理するための 2 つの新しいイベントが用意されています:

既存の OnConnect イベントと OnDisconnect イベントが TBluetoothLE コンポーネントに含まれるようになりました:

  • OnConnect イベントは、リモートの GATT サーバー デバイスに接続したときにトリガされます。
  • OnDisconnect イベントは、リモートの GATT サーバー デバイスから接続解除したときにトリガされます。

Eddystone ビーコン形式のサポート

RTL では、Eddystone 形式のビーコンを使用できるようになりました。使用可能な種類は次の 3 つです。

  • EddystoneUID: ビーコンは、名前空間(Namespace)とインスタンス(Instance)から成る識別子をブロードキャストします。
  • EddystoneURL: ビーコンは、圧縮形式の URL をブロードキャストします。
  • EddystoneTLM: ビーコンは、ビーコンの状態に関連した遠隔測定情報をブロードキャストします。

ビーコン スキャンのパフォーマンス向上

新しい BLE スキャン フィルタの追加により、以下を目的としてビーコン フレームワークを改善することができます。

監視対象となるビーコンを登録する必要がなくなりました。代わりに、以下を行います。

  • お使いの TBeacon デバイスに Extended モードを設定します。
  • 監視対象となる未登録ビーコンを ModeExtended プロパティに指定します。
  • 新しい StartScan メソッドを使用して、指定のビーコンをスキャンします。

メモ: 最後のステップでは、複数の種類のビーコンを同時にスキャンできます。

詳細については、ビーコンの登録方法ビーコンのスキャン方法を参照してください。

TBeaconDevice コンポーネントで Eddystone ビーコン形式をサポート

Eddystone ビーコンの追加により、TBeaconDevice コンポーネントでこの形式をサポートすることができます。

TBeaconDevice を使用することにより、Eddystone ビーコンの仕様の近接度データをアドバタイズする BLE デバイスでアプリケーションを実行できるようになりました。

BeaconType プロパティを通じて EddystoneUID 形式と EddystoneURL 形式を選択することができます。

プラットフォーム サポート:

  • Android デバイスではバージョン 5.0 以上の Eddystone 形式をアドバタイズすることができます。
  • iOS デバイスでは iBeacon フレームのアドバタイズのみ可能です。
  • Windows デバイスでは Eddystone 形式を使用できません。BLE 用の WinRT API では、アドバタイズされる ServiceData をカスタマイズできないからです。

アプリケーション テザリングの改良点

アプリケーション テザリングに次の機能が追加されました。

非同期 HTTP 要求のサポート

ダウンロード中にアプリケーションの実行が停止しないように、HTTP 要求を非同期的に送信できるようになりました。

HTTP クライアント コンポーネントを使用する場合は、「要求の非同期化」を参照してください。HTTP クライアント API を使用する場合は、THTTPClient の API ドキュメントを参照してください。

暗号化された ZIP ファイルのサポート

TZipFile には、暗号化された ZIP ファイル(パスワードで保護された ZIP ファイルなど)を解凍するときに処理できるイベント(またはコールバック)が用意されています。

文字列リストの改良点

TStrings およびそのサブクラス(TStringList など)には次の機能が追加されました。

  • AddPairフルーエント スタイルのコーディングを使って文字列リストにキー/値ペアを追加)
  • KeyNames(キー/値ペアが含まれている文字列リストからキーのリストを取得)
  • Options(文字列リストの論理型プロパティの多くを容易に制御)
  • SetStrings(別の TStrings オブジェクトから文字列をコピー)。これは Assign と似ていますが、Assign の場合にコピーされる複数のプロパティがコピーされません。
  • TrailingLineBreakText プロパティで最後の行の後に改行が含まれていなければならないかどうかを判定)
  • Updating(文字列リストが更新中かどうかを示す)
  • UseLocale(文字列リストで文字列比較に使用される実装を判定)
  • ExtractName には、解析する文字列がキー/値ペアでない場合に ExtractName の戻り値を決定する新しいパラメータ(AllNames)が追加されました。

TStringList には、TStringList の初期化済みインスタンスを作成しやすくする新しいオーバーロード コンストラクタも追加されています。

TMemIniFile の改良点

TMemIniFile には次の機能が追加されました。

TFileStream のバッファリングのサポート

TFDFileStreamFireDAC.Stan.Util から System.Classes に移動し、名前が TBufferedFileStream に変更されました。

TBufferedFileStreamTFileStream の下位クラスで、連続する複数の小規模な書き込みまたは読み取りを最適化します。言い換えれば、TBufferedFileStream は、バッファリングのサポートを TFileStream に付け加えたものです。

メモTBufferedFileStream では、ランダム位置の読み取りや書き込み、または大規模な読み取りや書き込みの場合にはパフォーマンスが向上しません。

オブジェクト プロパティにアクセスするための JSON パス構文の変更

名前にドットが含まれているオブジェクト プロパティにアクセスするための有効な JSON パス構文 が、Berlin では次のように変わりました。

構文の例 Seattle Berlin

root."child.name"

YesC++11Feature.png

root["child.name"]

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

root['child.name']

YesC++11Feature.png

正規表現と文字列置換の最適化

正規表現の使用が、実行時間とメモリ消費の 2 つの観点から最適化されました。

実行時間に関しては、最適化された正規表現を Windows プラットフォームと Android プラットフォームで使用した場合の速度向上の例を次の表に示します。これらの例は、簡単な正規表現の解析(170 KB のファイル)について計算したものです。

プラットフォーム 実行時間(ミリ秒) 速度向上
最適化前 最適化後
Windows(Intel i7、Windows 7) 5900 29 ~ 310 倍
Android(Motorola E(第 2 世代)、Android 5.0.2) 47075 420 ~ 111 倍
メモ: この表に示した速度向上の値は、この例に固有のものです。使用する個々の正規表現や処理マシンによって、達成できる速度向上は変わる可能性があります。

メモリ消費の最適化に関しては、膨大な数の一致があってもメモリの消費に重大な影響を及ぼさなくなりました。

StringReplace 関数のパフォーマンスも向上しました。

HTTP 接続の改良点

URLEncode/URLDecode 関数

URL のエンコードおよびデコード機能は System.NetEncoding ユニットに移動しました。

System.Net.URLClient.TURI.URLEncode 関数と System.Net.URLClient.TURI.URLDecode 関数は非推奨になりました。代わりに、System.NetEncoding.TURLEncoding.URLDecodeSystem.NetEncoding.TURLEncoding.Encode を使用します。

System.NetEncoding に追加された新しい関数:

C++ プロジェクトには TMessage ではなく TMessageBase を使用

System.Messaging ユニットに定義されていた TMessage クラスは、同様にメッセージを処理する他のユニット(たとえば Winapi.Messages など)を組み込んだ C++ プロジェクトであいまいさを避けるため、TMessageBase に名前が変更されました。

TMessageTMessageBase へのエイリアスとして残っています。

TRect 型、TRectF 型、TPoint 型、TPointF 型に追加された C++ 関数

System.Types に追加された新しい C++ 関数:

RTL のその他の変更点

ネイティブ API

  • Androidapi.JNI.Bluetooth ユニットに含まれている Android Bluetooth LE API が更新され、Android 5.0 以降の API レベル 21 で導入された変更に従って、新しいクラスやメソッドが追加されました。
  • RAD Studio には DirectX 12 用の新しいユニットが用意されています。
  • WinRT 用のユニットが使いやすくなりました。

Delphi コンパイラ

ジェネリックスのコンパイル時のパフォーマンス向上

Delphi コンパイラにジェネリックスに関する変更がいくつか加えられ、次のような改善につながりました。

  • ジェネリックスの解析が最大で 3 倍高速になりました。
  • 広範囲にジェネリックスを使用しているプロジェクトのリンク時の DCC32DCC64DCCOSX のパフォーマンスが向上しました。

すべてのコンパイラでサポートされている属性

すべての Delphi コンパイラで次の属性をサポートするようになりました。

Delphi コンパイラのその他の改良点

  • 条件シンボルに割り当てられるメモリが 256 バイトから 4096 バイトに拡張されました。
  • BCCOSX との互換性を保つため、Extended 型のサイズが 16 バイトになりました。
  • 可視性のセマンティクスを実行するため、クラス ヘルパやレコード ヘルパでは、拡張元のクラスやレコードの private メンバにはアクセスできません。

C++ コンパイラ

更新された BCCAARM および BCCIOSARM

BCCAARMBCCIOSARM が更新され、Clang 3.3LLVM 3.3 を使用するようになりました。

Delphi 型のより向上した C++ サポート

Clang 拡張 C++ コンパイラでは、以下が改良されています。

C++ オプションの変更点

Clang 拡張 C++ コンパイラでは、以下が改良されています。

  • コマンド ラインで並列コンパイルを有効にするために使用されたコマンドライン オプション -PC は非推奨になりました。代わりに、--jobs=<N> を使用します。詳細については、「並列コンパイルの使用」を参照してください。
  • 数学関数にエラーを表示させるために使用されるコマンド ライン オプション -fmath-errnoIDE から構成できるようになりました。該当するオプションは、[プロジェクト|オプション...|C++ コンパイラ|拡張]ページの[浮動小数点演算]下にあります。Clang 拡張 C++ コンパイラの場合は、これがデフォルトで有効になっています。

C++ コンパイラのその他の変更点

  • BCC32C コンパイラでは依存関係チェック機能を提供するようになりました。make コマンドでは、直近のビルド以降に変更されたファイルと依存関係が変更されたファイルのみコンパイルされます。
  • compiler-rt ライブラリが BCC32CBCC64 で利用できるようになりました。

従来のヘッダーの削除

メモ: 従来のヘッダーは Windows と OSX 用にのみ提供されます。どのような場合でも、従来のヘッダーを #include で iOS や Android のプロジェクトにインクルードしないでください。

XE8 での C++ の変更点で警告したとおり、従来のヘッダーは次のケースで削除されています。

  • RAD Studio XE2 以降で導入されたユニット。この変更により、完全修飾ヘッダーではなく非修飾ヘッダーを使用していると、エラーが発生します。たとえば、ユニット System.SysUtils を使用するには、#include <System.SysUtils.hpp> を、#include <SysUtils.hpp> の代わりに使用します。
  • ユニットによっては、RAD Studio XE2 より前に導入されたものがあります(Soap.SOAPMidas など)。この場合、Soap.SOAPMidas は、ユニットの名前と、パッケージの名前の両方となります。このため、名前の競合を避けるには、#include <Soap.SOAPMidas.hpp> を、#include <SOAPMidas.hpp> の代わりに使用します。
  • DirectX 変換ヘッダー。

IDE

浮動表示されるフォーム デザイナ

VCL の場合も FireMonkey の場合も、フォーム デザイナを切り離すことができるようになりました。[フォーム デザイナ]オプションで、埋め込みデザイナを有効または無効にすることができます。フォーム デザイナを切り離すには、[ツール|オプション...|環境オプション|フォーム デザイナ]を選択し、[埋め込みデザイナ]のチェックをオフにして[OK]をクリックします。変更内容は、次回 IDE を起動したときに有効になります。

FireUI ライブ プレビュー

FireUI ライブ プレビューは、RAD Studio に組み込まれている新しいツールで、設計中のアプリケーションのアクティブなフォームを複数のデバイスに同時にブロードキャストして、アプリケーションのデザインが実際にどう見えるかをリアルタイムに確認するためのものです。

FireUI ライブ プレビューは次の 2 つの部分から成ります。

FireUI ライブ プレビュー(IDE)は追加のインストールが必要なく、デフォルト構成で付属しています。追加の IDE オプションを構成する場合は、「[FireUI ライブ プレビュー](IDE オプション)」を参照してください。

クライアント入手方法の詳細については、「FireUI アプリケーション プレビューの入手方法」を参照してください。

GetIt 依存パッケージ

GetIt 依存パッケージを管理するための新しい[プロジェクト オプション]ダイアログ ボックス ページが追加されました。

このダイアログ ボックス ページでは、[GetIt パッケージ マネージャ]パッケージに関して、プロジェクトの依存関係を設定できます。

[プロジェクト|オプション...|GetIt 依存パッケージ[GetIt 依存パッケージ]オプション ページが表示されます。

ブックマーク スタック

ブックマーク スタックは、ソース コードのナビゲーション手段の 1 つです。コードにブックマークを追加していくと、ブックマークがスタックに登録されます。その後は、最後に追加したブックマークから逆の順序でソース コードをたどることができます。

詳細については、「スタック ブックマーク」および「ブックマーク スタックの使用」を参照してください。

選択範囲の拡張

選択範囲の拡張を使用すると、カーソル位置にある識別子を選択したあと、選択範囲をより大きい構文グループ(文、行、ブロック、メソッドなど)に広げることができます。Ctrl+W ショートカットを使用すると、選択を開始し選択範囲を広げることができます。

詳細については、「選択範囲の拡張」を参照してください。

メソッドの有害度値

新しいプロジェクト ページ[メソッドの有害度][プロジェクト|メソッドの有害度値...]で表示)には、アクティブなプロジェクトのメソッドに関する測定値が表示されます。これらを使用すると、リファクタリングの候補として適切なものをメソッドの中から見つけることができます。新しい[有害度値]オプション ページで、CSV 形式で測定値をエクスポートしたり、主要な測定値のしきい値をカスタマイズすることができます。

[構造]ビューの C++ 向けの改良点

[構造]ビューには、次のように、C++ 向けの改良がいくつか加えられています。

Android サービスの改良点

詳細については、「Android サービスの作成」を参照してください。

iOS アドホック アプリケーションの実行のサポート

IDE で[アドホック]プラットフォーム構成を使ってビルドした iOS アプリケーションを実行できるようになりました。

カスタマイズ可能な info.plist ファイル

OS X アプリケーションおよび iOS アプリケーションの info.plist ファイルをカスタマイズすることができます。

Android スマート ウォッチの設計時の改良点

フォーム デザイナに次のものが用意されるようになりました。

  • Android スマート ウォッチに特化した 2 つのビュー
  • 4 つの異なる Android スマート ウォッチのデザイン領域のプレビュー

詳細については、「Android スマート ウォッチのアプリケーションの作成」を参照してください。

ファイル関連付け用の新しいオプション ページ

これまでのバージョンでは、どのファイル拡張子を RAD Studio に関連付けるかをインストール時に選択する必要がありました。

新しいオプション ページ[ファイルの関連付け]で RAD Studio のファイル関連付けを構成できるようになりました。

Delphi コンパイラからの情報メッセージを表示するための新しいオプション

IDE では、Delphi コンパイラからの情報メッセージを[メッセージ]ビューの[出力]タブに表示できるようになりました。

[プロジェクト|オプション...|Delphi コンパイラで、プロジェクトの[一般メッセージを表示]オプションをオンにします。

ナビゲーション ツールバーの表示/非表示用の新しいオプション

IDE では、コード エディタナビゲーション ツールバーを表示しないように設定できるようになりました。

そのための新しいオプション[ナビゲーション ツールバーを表示][ツール|オプション...|エディタ設定|表示]に用意されています。

詳細については、「ナビゲーション ツールバーの非表示方法」を参照してください。

高 DPI 認識機能

IDE は DPI に対応するようになりました。これにより、96 PPI より高い DPI 値を使用するシステムでのユーザー エクスペリエンスが向上します。

IDE のその他の変更点

  • [CPU ビュー]で iOS アプリケーションおよび Android アプリケーションのデバッグをサポートするようになりました。

デバッガ

iOS および Android デバッガ

  • Delphi の動的配列のサポートが強化されました。

64 ビット iOS デバッガ

64 ビット iOS デバッガには次の改良が加えられました。

  • Unicode のサポート
  • Delphi の配列、文字列、文字のサポート強化
  • インデックスがゼロ以外から始まる配列のサポート
  • プロパティおよびバリアントの評価のサポート
  • C++ ヘッダー ファイルにブレークポイントを定義できる機能の追加

ユーティリティ

  • Java2OP.exe ツールが JDK 8 で動作するようになりました。
  • 新しい SdkTransform.exe ツールが追加されました。これを使用すると、Objective-C ヘッダーまたは C++ ヘッダーを Delphi ヘッダーに変換できます。

サンプル アプリケーション

次の新しいサンプル アプリケーションが Berlin に追加されました。

ヘルプ

関連トピック

関連項目