新機能
メインページ への移動
目次
- 1 インストール作業の改善
- 2 FireMonkey
- 3 VCL
- 4 EMS
- 5 DataSnap
- 6 WebBroker
- 7 FireDAC
- 8 クラウド サービス
- 9 REST クライアント ライブラリ
- 10 LiveBinding
- 11 ThingConnect IoT 接続フレームワーク
- 12 BeaconFence
- 13 RTL
- 13.1 Windows 10 での Bluetooth LE とビーコンのサポート
- 13.2 Bluetooth LE 検出のパフォーマンス向上
- 13.3 キャラクタリスティックのサブスクリプションを処理するための新しいイベントを Bluetooth LE に用意
- 13.4 Eddystone ビーコン形式のサポート
- 13.5 ビーコン スキャンのパフォーマンス向上
- 13.6 TBeaconDevice コンポーネントで Eddystone ビーコン形式をサポート
- 13.7 アプリケーション テザリングの改良点
- 13.8 非同期 HTTP 要求のサポート
- 13.9 暗号化された ZIP ファイルのサポート
- 13.10 文字列リストの改良点
- 13.11 TMemIniFile の改良点
- 13.12 TFileStream のバッファリングのサポート
- 13.13 オブジェクト プロパティにアクセスするための JSON パス構文の変更
- 13.14 正規表現と文字列置換の最適化
- 13.15 HTTP 接続の改良点
- 13.16 URLEncode/URLDecode 関数
- 13.17 C++ プロジェクトには TMessage ではなく TMessageBase を使用
- 13.18 TRect 型、TRectF 型、TPoint 型、TPointF 型に追加された C++ 関数
- 13.19 RTL のその他の変更点
- 14 ネイティブ API
- 15 Delphi コンパイラ
- 16 C++ コンパイラ
- 17 IDE
- 17.1 浮動表示されるフォーム デザイナ
- 17.2 FireUI ライブ プレビュー
- 17.3 GetIt 依存パッケージ
- 17.4 ブックマーク スタック
- 17.5 選択範囲の拡張
- 17.6 メソッドの有害度値
- 17.7 [構造]ビューの C++ 向けの改良点
- 17.8 Android サービスの改良点
- 17.9 iOS アドホック アプリケーションの実行のサポート
- 17.10 カスタマイズ可能な info.plist ファイル
- 17.11 Android スマート ウォッチの設計時の改良点
- 17.12 ファイル関連付け用の新しいオプション ページ
- 17.13 Delphi コンパイラからの情報メッセージを表示するための新しいオプション
- 17.14 ナビゲーション ツールバーの表示/非表示用の新しいオプション
- 17.15 高 DPI 認識機能
- 17.16 IDE のその他の変更点
- 18 デバッガ
- 19 ユーティリティ
- 20 サンプル アプリケーション
- 21 ヘルプ
- 22 関連トピック
- 23 関連項目
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)」を参照してください。
[スタイル デザイナ]の改良
[スタイル デザイナ]には、次のようないくつかの変更や改良が加えられています。
- [構造]ビューでのクリップボード、キーボード、複数選択のサポート。
- プレビュー パネル
- ズーム(拡大/縮小)のサポート
新規のリスト ビュー項目デザイナ
リスト ビュー コントロールでは、リスト ビューのあらゆる項目(ラベル、画像、ボタンなど)の内容をカスタマイズするのに使用できる、項目の外見の新しい種類(編集モードでも使用可能)である DynamicAppearance
をサポートするようになりました。
また、フォーム デザイナでリスト ビューを右クリックし、新しい[デザイン モードの切り替え]エントリを選択して、リスト ビュー項目のコントロールを視覚的にカスタマイズできるビジュアル リスト ビュー項目エディタを有効にすることもできます。
このデザイン モードでは、[オブジェクト インスペクタ]を使用してリスト ビュー項目のデザインに新しい要素を追加することができ、[オブジェクト インスペクタ]とフォーム デザイナの両方を使用してそれらの要素をカスタマイズすることができます。
拡張されたクリップボード サポート サービス
FireMonkey には、新しい機能を追加する IFMXExtendedClipboardService インターフェイスが用意されるようになりました。IFMXExtendedClipboardService インターフェイスでは、たとえば、次のことが可能です。
- カスタム ユーザー形式の登録
- カスタム ユーザー形式でのデータのコピー/貼り付け
- クリップボード値の直接取得
画像リスト エディタの改良点
画像リスト エディタの[画像の追加]ダイアログ ボックスでは、複数の画像を一度に追加できるようになりました。
グリッドの改良点
グリッド コントロールのプレゼンテーション ロジックとデータ モデルがこれらから切り離されました。これは、さまざまな改良点の中でも特に、API の互換性を破る変更で、グリッド コントロールで将来ネイティブ表示をサポートできるようにするために必要なものです。「Berlin での FireMonkey グリッド コントロールの変更点」を参照してください。
- 警告: グリッド コントロールを使用している古いプロジェクトを Berlin に移行する際は、中でも特に、プロジェクトの
uses
句の 1 つに新しい FMX.Grid.Style ユニットを含める必要があります。新しいプロジェクトには、このユニットは自動的に組み込まれます。
Windows での高 DPI のサポート
FireMonkey では High DPI の改善が提供されており(Windows の複数解像度スタイル、など)、120 DPI や 144 DPI のモニタに対するサポートが提供されています。
アクセラレータ キーのサポート強化
次のコントロールでアクセラレータ キーを使用できるようになりました。
- TLabel
- TButton
- TRadioButton
- TabControl の TTabItem
- TCheckBox
- TPopupBox の TPopupBox.Items
- TTextControl
- TPresentedTextControl
- TCustomAction
拡張フォント スタイルのサポート
TFont には、太さ、傾き、伸縮という拡張された特性を持つフォントを扱うための新しいプロパティ StyleExt が追加されました。
Hint プロパティの変更点
RAD Studio のこれまでのバージョンでは、TControl を継承するすべての FireMonkey コントロールで Hint の可視性が published になっていました。現在は、「Berlin での Hint プロパティの変更点」に記載されている FireMonkey コントロールで Hint プロパティの可視性が published になっています。
ダイアログ API の簡素化
ダイアログ ボックスを表示するためのいくつかの手続きや関数が非推奨になり、同期ダイアログ ボックスと非同期ダイアログ ボックスをそれぞれサポートする新しいプラットフォーム サービス IFMXDialogServiceAsync および IFMXDialogServiceSync の手続きや関数に置き換わりました。
こうした API の変更点を次の表にまとめます。
非推奨になったメンバ | 新規メンバ |
---|---|
|
|
|
|
|
- *
ShowMessage
とShowMessageFmt
は実際には非推奨にはなっていませんが、それでも、ShowMessageAsync や ShowMessageSync を代わりに使用する方がよいでしょう。
2 つの新しいヘルパ クラス TDialogServiceAsync および TDialogServiceSync も作成されました。これらのヘルパ クラスには、対応するダイアログ ボックス プラットフォーム サービスのインスタンスがなくてもダイアログ ボックスの新しい手続きや関数を呼び出せるようになるクラス メソッドおよび関数が用意されています。
FireMonkey のその他の変更点
- ピッカーの新しい AbsoluteTargetRect プロパティにより、ピッカーの表示位置を定義することができます。
- Android では、リスト ビューにタッチ アニメーションが表示されます。
- AppAnalytics では、HTTP ではなく HTTPS が使用されます。
- TMediaPlayer では、指定されたメディア ファイルの拡張子が登録されていない場合、ターゲット プラットフォームのデフォルト コーデックを使って、そのメディア ファイルの再生を試みるようになりました。
- Double 型が Extended 型に代わって使用されるようになりました。
- TShape の非推奨プロパティ StrokeThickness、StrokeCap、StrokeDash、StrokeJoin は削除されました。TStrokeBrush 型の統合プロパティ TShape.Stroke を使用します。TStrokeBrush オブジェクトには、削除された非推奨プロパティの代わりに使用すべきプロパティ Thickness、Cap、Dash、Join があります。
- 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 のその他の変更点
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 から String、UTF8String、TBytes のいずれかに変わりました。
FireDAC
DB2 向けの改良点
- DB2 ネイティブ ドライバと ODBC ブリッジ ドライバが DB2 AS/400 をサポートするようになりました。
- FireDAC トランザクション管理を無効にできるようにする新しい接続定義パラメータ
TxSupported
が追加されました。
MongoDB 向けの改良点
- データベース警告をサポートするようになりました。MongoDB の固定サイズ コレクションに対する挿入操作の通知を使用します。詳細については、「データベース警告(FireDAC)」を参照してください。
- ドキュメント項目を反復処理するための新しいメソッド TMongoDocument.Iterate が追加されました。詳細については、新しいデモ
Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\ListView
を参照してください。
Advantage 向けの改良点
- Advantage v12 以降の場合:
- TFDADSBackup と TFDADSRestore が改良されて、バックアップ アーカイブをサポートするようになりました。
GUID
データ型をサポートするようになりました。
- 暗号化テーブルのサポートが強化されました:
InterBase の改善
- サーバーのバージョン、ライセンス、構成、使用状況の情報を問い合わせるための新しいサービス コンポーネント TFDIBInfo が追加されました。
- BLOB ストリーミング用の内部ストリームをサポートするようになりました。
- InterBase 配列データ型のサポート。詳細については、新しいデモ「FireDAC.InterBase 配列」を参照してください。
- TIBRestoreOptions.roReplace が
TIBRestoreOptions.roCreate
に代わって使用されるようになりました。
Firebird の改善
- サーバーのバージョン、ライセンス、構成、使用状況の情報を問い合わせるための新しいサービス コンポーネント TFDIBInfo が追加されました。
- BLOB ストリーミング用の内部ストリームをサポートするようになりました。
- Firebird 配列データ型のサポート。詳細については、新しいデモ「FireDAC.InterBase 配列」を参照してください。
- TIBRestoreOptions.roReplace が
TIBRestoreOptions.roCreate
に代わって使用されるようになりました。
Informix 向けの改良点
- TFDInfxError クラスが ISAM エラー コードを返せるようになりました。
- 新しい接続定義パラメータ
TxRetainLocks
およびTxLastCommitted
が追加されました。 - 悲観的ロックをサポートするようになりました。
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
を参照してください。
- TFDEventAlerter へのクエリ変更通知をサポートするようになりました。詳細については、新しいデモ
- Oracle 11g 以降の場合:
- Oracle データベース インスタンスを管理するための新しいコンポーネント TFDOracleAdmin が追加されました。
- 64 ビット整数および符号なし 32 ビット整数をサポートするようになりました。
- 暗黙的な ROWID 取得をサポートするようになりました。これは、効果的なデータセット編集のために
SELECT … FOR UPDATE
の SELECT リストに暗黙的に組み込まれます。 - ネットワーク タイムアウトをサポートするようになりました。新しい接続定義パラメータ
ReadTimeout
およびWriteTimeout
が追加されました。
- Oracle 12c 以降の場合:
- 32K VARCHAR2、32K NVARCHAR2、32K RAW の各データ型をサポートするようになりました。
- PL/SQL でネイティブ BOOLEAN をサポートするようになりました。
- ID 列をサポートするようになりました。これは自動インクリメント フィールドとして認識されます。
- 暗黙的な結果をサポートするようになりました。NextRecordSet を使用して、それらを処理することができます。
- トランザクション状態の検出と同期が改善されました。
- 接続定義パラメータ
AuthMode
で新しい認証モードSYSASM
、SYSBACKUP
、SYSDG
、SYSKM
をサポートするようになりました。
PostgreSQL 向けの改良点
- PostgreSQL 9.2 以降の場合:
- PostgreSQL 9.3 以降の場合:
- オブジェクト識別エラー フィールドをサポートするようになりました。そのために、次のプロパティが FireDAC.Phys.PGWrapper.TFDPgError に追加されました。
- SchemaName: そのエラーに関連付けられるデータベース オブジェクトが含まれているスキーマの名前を格納します。
- TableName: そのエラーに関連付けられるテーブルの名前を格納します。
- ColumnName: そのエラーに関連付けられるテーブル列の名前を格納します。
- TypeName: そのエラーに関連付けられるデータ型の名前を格納します。
- ConstraintName: そのエラーに関連付けられる制約の名前を格納します。
- オブジェクト識別エラー フィールドをサポートするようになりました。そのために、次のプロパティが FireDAC.Phys.PGWrapper.TFDPgError に追加されました。
- PostgreSQL 9.4 以降の場合:
- JSONB データ型をサポートするようになりました。
- PostgreSQL クライアントおよびサーバー バージョン 9.5 をサポートするようになりました。
- 制約付き配列のサポートが強化されました:
- 配列が
ftArray
にマッピングされるかftDataSet
にマッピングされるかを判定するのに使用される新しい接続定義パラメータArrayScanSample
が追加されました。 TFDParam.ArrayType=atTable
を使用して配列をサーバーに送信できます。
- 配列が
SQLite 向けの改良点
- SQLite バイナリがバージョン 3.9.2 に更新されました。
- SQLite v3.8.9 以降の場合:
- インデックス列に関する詳細な情報(昇順か降順か、基底列か式列か、など)をサポートするようになりました。
- 式に対するインデックスをサポートするようになりました。
- OS X の場合:
- 最適化されたビルド済みクライアント ライブラリが用意されています。FireDAC と SQLite を使用するアプリケーションを OS X 向けに作成する場合は、
libcgsqlite3.dylib
を配置しなければなりません。 - 静的リンケージをサポートするようになりました(
libcgsqlite3.dylib
を使用)。 - 暗号化をサポートするようになりました。
- 最適化されたビルド済みクライアント ライブラリが用意されています。FireDAC と SQLite を使用するアプリケーションを OS X 向けに作成する場合は、
FireDAC のその他の変更点
- TFDDataSet.Reconcile では、調停した変更をデフォルトではコミットしなくなりました。さらに、
TFDDataSet.Reconcile
にTrue
を渡した場合は、たとえ UpdateOptions.AutoCommitUpdates がFalse
でも、調停された変更は常にコミットされます。 - TFDVersion の型が Int64 から UInt64 に変わりました。
- FireDAC.Phys.ODBCBase ユニットと FireDAC.Phys.ODBCWrapper ユニットが
FireDACODBCDriver240.bpl
パッケージからFireDACCommonODBC240.bpl
パッケージに移動しました。 - TFDDataSet.MergeDataSet の呼び出しで一連のマージ オプションを指定できます。
クラウド サービス
Amazon
AmazonAPI では、次の操作をサポートするようになりました。
- キューに含まれているすべてのメッセージを削除すること。
- バケット内のオブジェクトのライフサイクルを GetBucketLifecycleXML、SetBucketLifecycle、DeleteBucketLifecycle で管理すること。
Azure
- AzureAPI では、次の API バージョンをサポートするようになりました。
- Microsoft Azure BLOB サービス:
API バージョン 2015-02-21
- Microsoft Azure Table サービス:
API バージョン 2015-02-21
- Microsoft Azure Queue サービス:
API バージョン 2015-02-21
- Microsoft Azure BLOB サービス:
- 追加 BLOB をサポートするようになりました:
- 追加 BLOB を作成できるようになりました。
- 既存の追加 BLOB にデータを追加できます。
- アクセス ポリシーのサポートが強化されました:
- キューとテーブルに関するアクセス ポリシーをサポートするようになりました。
- TPolicy およびそのサブクラス(TBlobPolicy、TQueuePolicy、TTablePolicy)が TAccessPolicy に代わって使用されるようになり、TAccessPolicy は非推奨になりました。
- BLOB および BLOB コンテナのリース サポートが強化されました:
- コンテナのリースやコンテナ リースに関連する他の操作をサポートするようになりました。
- BLOB リースの識別子を変更できるようになりました。
- BLOB リースを取得するときに、新しいリースの識別子を提案できるようになりました。
- サービスのプロパティと統計情報:
- BLOB サービス、Queue サービス、Table サービスのプロパティをサポートするようになりました。
- BLOB サービス、Queue サービス、Table サービスの統計情報をサポートするようになりました。
- 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 デバイスをスキャンできるようになりました。そのためには、以下を行います。
- フィルタを TBluetoothLEScanFilter インスタンスとして作成します。
- デバイスのフィルタリングに使用するフィールドを指定します。
- ManufacturerSpecificData を使用するデバイス(AltBeacon や iBeacon など)の場合は、このデータでフィルタリングするために、ヘルパ クラス TBeaconManufacturerDataHelper を使用できます。その後、TBeaconManufacturerDataHelper の内容をフィルタに渡します。
- 最後に、フィルタをフィルタ リストに追加し、StartDiscovery の新しい実装を使ってデバイスの検出を開始します。
キャラクタリスティックのサブスクリプションを処理するための新しいイベントを Bluetooth LE に用意
TBluetoothLE コンポーネントには、GATT サーバー キャラクタリスティックのサブスクリプションを処理するための 2 つの新しいイベントが用意されています:
- OnCharacteristicSubscribed は、リモート デバイスが GATT サーバー キャラクタリスティックの 1 つをサブスクライブしたときにトリガされます。
- OnCharacteristicUnSubscribed は、リモート デバイスが GATT サーバー キャラクタリスティックの 1 つのサブスクライブを解除したときにトリガされます。
既存の 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 をカスタマイズできないからです。
アプリケーション テザリングの改良点
アプリケーション テザリングに次の機能が追加されました。
- IPv4 と IPv6 のマルチキャストをサポートする 2 つの新しいネットワーク アダプタ。これらを使用するようにマネージャを構成できます。
- リモート マネージャ検出のターゲットとして IPv4 アドレスの範囲を指定できます。
- ログ フィルタリングのサポート。アプリケーション テザリング アーキテクチャの特定項目のログ記録を有効または無効にすることができます。
- リモート プロファイルからの接続要求が可能かどうかをプロファイルで制御できるようになりました。その結果、
TTetheringProfile.OnConnectProfile
イベントが OnBeforeConnectProfile と OnAfterConnectProfile に分割されました。TTetheringDisconnectEvent
イベント型の名前が TTetheringProfileEvent に変更されました。
非同期 HTTP 要求のサポート
ダウンロード中にアプリケーションの実行が停止しないように、HTTP 要求を非同期的に送信できるようになりました。
HTTP クライアント コンポーネントを使用する場合は、「要求の非同期化」を参照してください。HTTP クライアント API を使用する場合は、THTTPClient の API ドキュメントを参照してください。
暗号化された ZIP ファイルのサポート
TZipFile には、暗号化された ZIP ファイル(パスワードで保護された ZIP ファイルなど)を解凍するときに処理できるイベント(またはコールバック)が用意されています。
文字列リストの改良点
TStrings およびそのサブクラス(TStringList など)には次の機能が追加されました。
- AddPair(フルーエント スタイルのコーディングを使って文字列リストにキー/値ペアを追加)
- KeyNames(キー/値ペアが含まれている文字列リストからキーのリストを取得)
- Options(文字列リストの論理型プロパティの多くを容易に制御)
- SetStrings(別の TStrings オブジェクトから文字列をコピー)。これは Assign と似ていますが、Assign の場合にコピーされる複数のプロパティがコピーされません。
- TrailingLineBreak(Text プロパティで最後の行の後に改行が含まれていなければならないかどうかを判定)
- Updating(文字列リストが更新中かどうかを示す)
- UseLocale(文字列リストで文字列比較に使用される実装を判定)
- ExtractName には、解析する文字列がキー/値ペアでない場合に ExtractName の戻り値を決定する新しいパラメータ(
AllNames
)が追加されました。
TStringList
には、TStringList
の初期化済みインスタンスを作成しやすくする新しいオーバーロード コンストラクタも追加されています。
TMemIniFile の改良点
TMemIniFile には次の機能が追加されました。
- CaseSensitive プロパティの値をコンストラクタの呼び出しで指定できます。
- INI ファイルがディスクからの読み込み以降に変更されたかどうかを、新しい Modified プロパティで示します。
TMemIniFile
のインスタンスの破棄時にその変更内容をディスクに保存すべきかどうかを、新しい AutoSave プロパティで判定できます。
TFileStream のバッファリングのサポート
TFDFileStream
が FireDAC.Stan.Util から System.Classes に移動し、名前が TBufferedFileStream に変更されました。
TBufferedFileStream は TFileStream の下位クラスで、連続する複数の小規模な書き込みまたは読み取りを最適化します。言い換えれば、TBufferedFileStream は、バッファリングのサポートを TFileStream に付け加えたものです。
- メモ: TBufferedFileStream では、ランダム位置の読み取りや書き込み、または大規模な読み取りや書き込みの場合にはパフォーマンスが向上しません。
オブジェクト プロパティにアクセスするための JSON パス構文の変更
名前にドットが含まれているオブジェクト プロパティにアクセスするための有効な JSON パス構文 が、Berlin では次のように変わりました。
構文の例 | Seattle | Berlin |
---|---|---|
|
|
|
|
|
|
|
|
正規表現と文字列置換の最適化
正規表現の使用が、実行時間とメモリ消費の 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.URLDecode と System.NetEncoding.TURLEncoding.Encode を使用します。
System.NetEncoding に追加された新しい関数:
C++ プロジェクトには TMessage ではなく TMessageBase を使用
System.Messaging ユニットに定義されていた TMessage クラスは、同様にメッセージを処理する他のユニット(たとえば Winapi.Messages など)を組み込んだ C++ プロジェクトであいまいさを避けるため、TMessageBase に名前が変更されました。
TMessage は TMessageBase へのエイリアスとして残っています。
TRect 型、TRectF 型、TPoint 型、TPointF 型に追加された C++ 関数
System.Types に追加された新しい C++ 関数:
RTL のその他の変更点
- TBluetoothGattServer の OnConnectedDevice イベントと OnDisconnectDevice イベントが Android をサポートするようになりました。
- 文字列型 UTF8String および RawByteString が iOS と Android でサポートされるようになりました。
- 診断のためにスレッド プールの内部状態のスナップショットを取得するのに使用できる新しいレコード TThreadPoolStats が並列プログラミング ライブラリに含まれるようになりました。
- THTTPResponse の取得アクセサは public になり、それらを使用するのに、IURLResponse インターフェイスや IHTTPResponse インターフェイスを使用する必要はなくなりました。
- System.Threading ユニットに定義されていた
EOperationCanceled
クラスが EOperationCancelled に名称変更され、System.SysUtils ユニットに移動しました。 - RTL で
Winapi.ActiveX
ユニットへの依存関係がWinapi.Winrt
ユニットから削除されました。 - iOS では ShowMessage が非同期手続きになりました。
- TTimeSpan 型に定義されている ToString 関数が public になりました。
- gzip コンテンツ エンコーディングでの応答の自動解凍を HTTP クライアントでサポートするようになりました。
- TZDecompressionStream コンストラクタは、新しい
OwnsStream
パラメータです。これは、このクラスが圧縮ストリームを所有しているか否かを判別するために使用されます。
ネイティブ API
Androidapi.JNI.Bluetooth
ユニットに含まれている Android Bluetooth LE API が更新され、Android 5.0 以降の API レベル 21 で導入された変更に従って、新しいクラスやメソッドが追加されました。- RAD Studio には DirectX 12 用の新しいユニットが用意されています。
- WinRT 用のユニットが使いやすくなりました。
Delphi コンパイラ
ジェネリックスのコンパイル時のパフォーマンス向上
Delphi コンパイラにジェネリックスに関する変更がいくつか加えられ、次のような改善につながりました。
すべてのコンパイラでサポートされている属性
すべての Delphi コンパイラで次の属性をサポートするようになりました。
Delphi コンパイラのその他の改良点
- 条件シンボルに割り当てられるメモリが 256 バイトから 4096 バイトに拡張されました。
- BCCOSX との互換性を保つため、Extended 型のサイズが 16 バイトになりました。
- 可視性のセマンティクスを実行するため、クラス ヘルパやレコード ヘルパでは、拡張元のクラスやレコードの private メンバにはアクセスできません。
C++ コンパイラ
更新された BCCAARM および BCCIOSARM
BCCAARM と BCCIOSARM が更新され、Clang 3.3 と LLVM 3.3 を使用するようになりました。
Delphi 型のより向上した C++ サポート
Clang 拡張 C++ コンパイラでは、以下が改良されています。
- RTL コンテナおよび派生コンテナである DynamicArray、TCollection、TEnumerable には、文字列の範囲ベースの for ループと STL イテレータを使用できます。
- TParallel::For、TTask::Create、TTask::Future のいずれかの呼び出しでラムダ式を使用できます。
C++ オプションの変更点
Clang 拡張 C++ コンパイラでは、以下が改良されています。
- コマンド ラインで並列コンパイルを有効にするために使用されたコマンドライン オプション
-PC
は非推奨になりました。代わりに、--jobs=<N>
を使用します。詳細については、「並列コンパイルの使用」を参照してください。 - 数学関数にエラーを表示させるために使用されるコマンド ライン オプション
-fmath-errno
が IDE から構成できるようになりました。該当するオプションは、[プロジェクト|オプション...|C++ コンパイラ|拡張]ページの[浮動小数点演算]下にあります。Clang 拡張 C++ コンパイラの場合は、これがデフォルトで有効になっています。
C++ コンパイラのその他の変更点
- BCC32C コンパイラでは依存関係チェック機能を提供するようになりました。make コマンドでは、直近のビルド以降に変更されたファイルと依存関係が変更されたファイルのみコンパイルされます。
- compiler-rt ライブラリが BCC32C と BCC64 で利用できるようになりました。
従来のヘッダーの削除
- メモ: 従来のヘッダーは 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 ライブ プレビュー(IDE)は追加のインストールが必要なく、デフォルト構成で付属しています。追加の IDE オプションを構成する場合は、「[FireUI ライブ プレビュー](IDE オプション)」を参照してください。
クライアント入手方法の詳細については、「FireUI アプリケーション プレビューの入手方法」を参照してください。
GetIt 依存パッケージ
GetIt 依存パッケージを管理するための新しい[プロジェクト オプション]ダイアログ ボックス ページが追加されました。
このダイアログ ボックス ページでは、[GetIt パッケージ マネージャ]パッケージに関して、プロジェクトの依存関係を設定できます。
[プロジェクト|オプション...|GetIt 依存パッケージ]で[GetIt 依存パッケージ]オプション ページが表示されます。
ブックマーク スタック
ブックマーク スタックは、ソース コードのナビゲーション手段の 1 つです。コードにブックマークを追加していくと、ブックマークがスタックに登録されます。その後は、最後に追加したブックマークから逆の順序でソース コードをたどることができます。
詳細については、「スタック ブックマーク」および「ブックマーク スタックの使用」を参照してください。
選択範囲の拡張
選択範囲の拡張を使用すると、カーソル位置にある識別子を選択したあと、選択範囲をより大きい構文グループ(文、行、ブロック、メソッドなど)に広げることができます。Ctrl+W
ショートカットを使用すると、選択を開始し選択範囲を広げることができます。
詳細については、「選択範囲の拡張」を参照してください。
メソッドの有害度値
新しいプロジェクト ページ[メソッドの有害度]([プロジェクト|メソッドの有害度値...]で表示)には、アクティブなプロジェクトのメソッドに関する測定値が表示されます。これらを使用すると、リファクタリングの候補として適切なものをメソッドの中から見つけることができます。新しい[有害度値]オプション ページで、CSV 形式で測定値をエクスポートしたり、主要な測定値のしきい値をカスタマイズすることができます。
[構造]ビューの C++ 向けの改良点
[構造]ビューには、次のように、C++ 向けの改良がいくつか加えられています。
- エイリアス テンプレートや初期化リストなどの C++11 機能のサポート
- 関数ポインタを返す関数のサポート
- 無名ビット フィールドのサポート
- throw のサポート強化.
Android サービスの改良点
- Android サービス プロジェクトをマルチデバイス アプリケーションから自動的に削除するための新しいウィザードが追加されました。
- [プロジェクト間の依存関係]が自動的に有効になっています:
- このオプションを使用すると、マルチデバイス アプリケーションに追加されたすべての Android サービス プロジェクトがメイン アプリケーションより先に自動的にビルドされるようにすることができます。
詳細については、「Android サービスの作成」を参照してください。
iOS アドホック アプリケーションの実行のサポート
IDE で[アドホック]プラットフォーム構成を使ってビルドした iOS アプリケーションを実行できるようになりました。
カスタマイズ可能な info.plist ファイル
OS X アプリケーションおよび iOS アプリケーションの info.plist ファイルをカスタマイズすることができます。
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 に追加されました。
- C++ 版サンプル:
- EMS サンプル:
- EMS.ThingPoint IoT サンプル
- EMS.APIDocAttributes サンプル
- FireMonkey サンプル:
- FMX.Remote Service デモ サンプル
- FMX.Birthday Reminder デモ サンプル
- FMX.SimplePhysics サンプル
- FMX.StreamingMedia サンプル
- FireDAC サンプル:
- RTL サンプル:
ヘルプ
- CHM ファイルには[お気に入り]タブが用意されています。