XE7 の新機能
以前のリリースでの新機能 への移動
XE7 リリースでは、新しい機能の追加や既存機能の改良が多数行われています。
目次
- 1 XE7 での FireMonkey の変更点
- 1.1 FireMonkey マルチデバイス アプリケーションではデスクトップ プラットフォームとモバイル プラットフォームを両方ともサポート
- 1.2 FireMonkey では新しい Google Mobile Ads API を Android に使用
- 1.3 新規の TMultiView コンポーネント
- 1.4 iOS での TEdit と TCalendar のネイティブ表示
- 1.5 マルチ ディスプレイのサポート
- 1.6 マルチタッチ サポートとジェスチャの変更点
- 1.7 Android 向けの没入型フルスクリーン モード
- 1.8 TControl の Size プロパティと PlatformDefault プロパティ
- 1.9 モバイル アプリケーションでの TTabPosition の PlatformDefault 設定
- 1.10 FireMonkey では iOS および Android で TListView のプル リフレッシュ(Pull-to-Refresh)機能をサポート
- 1.11 FireMonkey の状態保存機能
- 1.12 ダイアログ ボックスのメソッドでは閉じる際の処理を行う無名メソッドをサポート
- 1.13 タッチ操作に最適化された MetropolisUI スタイルが使用可能
- 1.14 DesignVisible プロパティが削除
- 1.15 FireMonkey ライブラリのリファクタリング
- 1.16 TTakePhotoFromLibraryAction および TTakePhotoFromCameraAction の新規プロパティ Editable
- 2 XE7 でのプラットフォーム アシスタントの変更点
- 3 XE7 での IDE の変更点
- 3.1 RAD Studio ガイド ツアー
- 3.2 マルチデバイス アプリケーションのフォーム デザイナの変更点
- 3.3 プロジェクト ファイルは配置マネージャに自動的に追加
- 3.4 Android 用の[資格リスト]ページが追加
- 3.5 Android へのスプラッシュ画面のサポート
- 3.6 IDE への Git バージョン管理システムの統合
- 3.7 Delphi パーソナリティでは OS X および iOS シミュレータの場合に SDK が必要
- 3.8 [プロジェクト マネージャ]から Android 向けのアプリケーションに Java ライブラリを追加
- 3.9 Metropolis UI アプリケーションの作成
- 4 XE7 でのランタイム ライブラリ(RTL)の変更点
- 5 XE7 での VCL の変更点
- 6 XE7 での C++ コンパイラの変更点
- 7 XE7 での Delphi コンパイラの変更点
- 8 XE7 でのデータベースおよび接続機能の変更点
- 9 XE7 でのデバッガの変更点
- 10 XE7 でのコマンドライン ユーティリティの変更点
- 11 XE7 でのアプリケーション サンプルの変更点
- 12 オンライン ヘルプの変更点
- 13 関連項目
XE7 での FireMonkey の変更点
FireMonkey マルチデバイス アプリケーションではデスクトップ プラットフォームとモバイル プラットフォームを両方ともサポート
デスクトップ アプリケーションを作成するかモバイル アプリケーションを作成するかを選択する必要はなくなりました。FireMonkey アプリケーションは今ではマルチデバイス アプリケーションと呼ばれ、デフォルトで、使用可能なターゲット プラットフォームをすべてサポートしています。
FireMonkey では新しい Google Mobile Ads API を Android に使用
FireMonkey では、新しい Google Mobile Ads SDK を使用して Android デバイス上で広告機能を提供するようになりました。
以前の FireMonkey では Google AdMob SDK を使用していましたが、これは非推奨になりました。Google の発表によれば、Play Store では、Google AdMob SDK で作成されたアプリケーションの受け付けを 2014 年 8 月 1 日に中止します。Google AdMob SDK ではなく Google Mobile Ads SDK を使用するように既存の Android アプリケーションを更新してください。「AdMob サービスの使用」を参照してください。
新規の TMultiView コンポーネント
FireMonkey では、サポートされているターゲット プラットフォームのいずれにも使用できるマスタ/詳細インターフェイスを実装できるようになる新規の TMultiView コンポーネントをサポートしています。
- マスタ ペインには、編集ボックス、ラベル、リストなどのあらゆるビジュアル コントロールの集合を表示することができます。
- 詳細ペインには、通常、マスタ ペインのコントロールのプロパティに応じた情報が表示されます。
このコンポーネントとサンプル アプリケーションの詳細については、「モバイル チュートリアル:マルチ ビュー コンポーネントを使用して情報の代替ビューを表示する(iOS および Android)」を参照してください。
iOS での TEdit と TCalendar のネイティブ表示
FireMonkey では、iOS ターゲット プラットフォームで、TEdit コンポーネントと TCalendar コンポーネントについてスタイル付き表示とネイティブ表示の両方をサポートするようになりました。
- デフォルトでは、これらのコンポーネントのいずれをフォーム デザイナに追加しても、スタイル付き表示が使用されます。
- iOS ターゲット プラットフォームでネイティブ表示を使用するには、新規の TPresentedControl.ControlType プロパティを
Platform
に設定します。
詳細については、「TPresentedControl.ControlType」および「FireMonkey のネイティブ iOS コントロール」を参照してください。
メモ: FMX.DateTimeCtrls.TCalendar クラスは専用のユニット FMX.Calendar に移動しました。既存のアプリケーションで TCalendar を使用している場合は、FMX.Calendar を uses セクションや #include 文に必ず含めます。
マルチ ディスプレイのサポート
アプリケーションが複数のディスプレイで動作する場合、GUI アプリケーション フレームワークでは、アプリケーション ユーザー インターフェイスの複数ディスプレイでのレイアウトを効果的に管理します。
FireMonkey アプリケーションが複数のディスプレイで動作する場合は、TScreen により、使用中のディスプレイのリストと数およびそれらのサイズが維持管理され、フォームまたは点が含まれているディスプレイを取得するメソッドが提供されます。FireMonkey フレームワークでの複数ディスプレイのサポートは、VCL アプリケーションでのマルチモニタのサポートと似ています。
マルチタッチ サポートとジェスチャの変更点
- 新規の FMX.MultiTouch ユニットには TMultiTouchManager が含まれています。
- 新規の OnTouch イベントでは、純粋にジェスチャである(決してマウス イベントとは解釈されない)ジェスチャを処理します。
- TForm と TControl には、ユーザーが指または類似のデバイス(マウス以外)を使ってタップした場合の OnTap イベントが用意されるようになりました。
Android 向けの没入型フルスクリーン モード
Android 4.4 アプリケーション(KitKat)では、没入型フルスクリーン モードを有効にできます。没入型モードを有効にするには、FMX.Forms.TForm.FullScreen を True に設定する必要があります。
Google Glass アプリケーションは本質的に没入型フルスクリーン モードになっていることに注意してください。
TControl の Size プロパティと PlatformDefault プロパティ
TControl には、コントロールのサイズの管理と格納を行う新規プロパティ Size が追加されました。Size プロパティは、新規フィールド PlatformDefault(デフォルトで True に設定)を取り入れたオブジェクト型(TControlSize)です。PlatformDefault により、コントロールは、実行時プラットフォームに合った定義済みサイズに自分自身を自動的にサイズ変更できます。TControl の Width プロパティと Height プロパティは残っていますが、それらの値は、幅および高さの別個のフィールドとしてではなく、TControlSize オブジェクトの内部に保存されるようになりました。
モバイル アプリケーションでの TTabPosition の PlatformDefault 設定
FMX.TabControl.TTabPosition 列挙型には PlatformDefault という新しい値が含まれています。この値の場合、ターゲット プラットフォームのデフォルト動作に従って、タブ位置が次のように設定されます。
- TTabPosition = Bottom(iOS アプリケーションの場合)
- TTabPosition = Top(Android アプリケーションの場合)
「モバイル チュートリアル:タブ コンポーネントを使用してページを表示する(iOS および Android)」を参照してください。
FireMonkey では iOS および Android で TListView のプル リフレッシュ(Pull-to-Refresh)機能をサポート
XE7 では、TListView のプル リフレッシュ(Pull-to-Refresh)機能が利用可能です。これは、リストを下にドラッグしてその内容を更新できるものです。この機能を有効にする方法とその使用方法については、PullToRefresh を参照してください。
FireMonkey の状態保存機能
FireMonkey の新しい状態保存機能を使用すれば、アプリケーションの状態をその終了前に保存でき、その結果、アプリケーションの再起動後にその状態を回復できるようになります。
この新しい機能を管理するために、フォームには、この状態の保存と回復を処理する SaveState という新しいプロパティがあります。この状態保存データへの書き込みと同データからの読み取りはいつでも行えますが、理想的には、この状態の保存は新しい OnSaveState イベントの発生時に、この状態の回復は OnCreate イベントの発生時に、それぞれ行うべきです。
フォームの状態保存の対象には、ユーザー データの他に、アクティブなタブ、編集コントロールに格納されているテキスト、チェック ボックスの選択状態、カレンダ日付、現在選択されている項目などの情報も含まれます。この機能はモバイル プラットフォームでもデスクトップ プラットフォームでも使用できます。
この機能の詳細については、「FireMonkey の状態保存」を参照してください。
ダイアログ ボックスのメソッドでは閉じる際の処理を行う無名メソッドをサポート
XE6 では、ダイアログ ボックスのメソッド(InputBox、InputQuery、MessageDlg、ShowMessage)の呼び出しは常にブロッキング呼び出しでした。これらのメソッドのいずれかを呼び出した後は、どのようなコードも、ダイアログ ボックスが閉じるまでは実行されません。Android ではブロッキング ダイアログ ボックスの使用が許されていないので、これらのメソッドを Android で使用することはできません。
XE7 では、InputBox、InputQuery、MessageDlg で新しいオプション パラメータ ACloseDialogProc
をサポートしています。この新規パラメータが使用された呼び出しは、Android を含むすべてのプラットフォームで動作します。このオプション パラメータを使用すると、ダイアログ ボックスが閉じる際に呼び出される無名メソッドを指定できます。この新規パラメータを使ってこれらのメソッドを呼び出す場合、デスクトップ プラットフォームではブロッキング呼び出しになり、モバイル プラットフォームでは非ブロッキング呼び出しになります。ダイアログ ボックスが閉じた後でコードを実行する必要がある場合は、この新規パラメータを使用して、サポートされているすべてのプラットフォームでアプリケーションが必ず期待どおりに動作するようにします。無名メソッドの詳細については、次のトピックを参照してください。
無名メソッドを指定せずに InputBox、InputQuery、MessageDlg のいずれかを呼び出す場合、これらのメソッドは XE6 での動作と同じように動作します。つまり、Android ではサポートされず、それ以外のすべてのプラットフォーム(iOS を含む)ではブロッキング呼び出しになります。
XE7 では、ShowMessage も Android をサポートするようになり、ShowMessage の呼び出しは、デスクトップ プラットフォームではブロッキング呼び出し、モバイル プラットフォームでは非ブロッキング呼び出しとなります。ただし、ShowMessage には、ダイアログ ボックスが閉じる際の処理を行う新規パラメータは用意されていません。ShowMessage で表示されたダイアログ ボックスが閉じた後でコードを実行する必要がある場合は、ShowMessage ではなく MessageDlg を使用します。
タッチ操作に最適化された MetropolisUI スタイルが使用可能
新しく更新された次の 4 つの MetropolisUI スタイルが FireMonkey に対して使用可能です(.style
ファイル)。
- MetropolisUIBlack_touch
- MetropolisUIBlue_touch
- MetropolisUIDark_touch
- MetropolisUIGreen_touch
これらのスタイルはモバイル アプリケーションの UI 要素をすべて備えており、タッチ操作に最適化されています。これらのスタイルは C:\Users\Public\Documents\Embarcadero\Studio\15.0\Styles にあります。
DesignVisible プロパティが削除
FMX.Controls.TControl.DesignVisible プロパティが削除されました。Visible プロパティが実行時と設計時の両方に適用されるようになり、[構造]ビューでは常に、設計時に任意のコンポーネントにアクセスできるようになりました。
FireMonkey ライブラリのリファクタリング
- FMX.Controls: FireMonkey フォーム アプリケーションを作成する場合は、以下のリファクタリングが行われてもユーザー コードの変更は不要です。FMX.Controls ユニットが FireMonkey フォーム アプリケーションに自動的に組み込まれるからです。
- これらのトリガ関連 API は FMX.Types ユニットから FMX.Controls ユニットに移動しました。
- FMX.Types.TFmxObject.StartTriggerAnimation(以前の名前)は FMX.Ani.TAnimator.StartTriggerAnimation になりました。
- FMX.Types.TFmxObject.ApplyTriggerEffect(以前の名前)は FMX.Controls.TControl.ApplyTriggerEffect になりました。
- これらのトリガ関連 API は FMX.Types ユニットから FMX.Controls ユニットに移動しました。
- FMX.Edit.TNumberBox クラスは専用のユニット FMX.NumberBox.TNumberBox に移動しました。既存のアプリケーションで TNumberBox を使用している場合は、FMX.NumberBox を uses セクションや #include 文に必ず含めます。
- FMX.DateTimeCtrls.TCalendar は専用のユニット FMX.Calendar に移動しました。アプリケーションで TCalendar を使用する場合は、必ず FMX.Calendar を uses セクションに追加したり #include 文で追加します。
- TPopup に新しいプロパティ Size、PopupForm と新しいメソッド VisibleStored が追加されました。
- MessageDlg、InputQuery、InputBox には、無名メソッドの参照を含んだ新しいオーバーロードがあります。これまで、これらのメソッドを Android アプリケーションで使用する場合には注意が必要でしたが、この変更により、その必要はなくなりました。
TTakePhotoFromLibraryAction および TTakePhotoFromCameraAction の新規プロパティ Editable
写真撮影アクションの基底クラス FMX.MediaLibrary.Actions.TCustomTakePhotoAction には、新規プロパティ Editable が含まれています。
この新しい Editable プロパティにより、TTakePhotoFromLibraryAction を使って写真を読み込んだ後や、TTakePhotoFromCameraAction を使って写真を撮影した後で、写真の画像をトリミングできるようになります。
この新しいプロパティの使用方法の詳細については、「モバイル チュートリアル:写真を撮って共有する、テキストを共有する(iOS および Android), 画像編集を可能にする」を参照してください。
XE7 でのプラットフォーム アシスタントの変更点
PAServer の 2 つの新規コマンド
v - 詳細表示モードの切り替え
(詳細表示モードでは、コマンドが発行されるたびにコマンドライン パラメータが表示されます)
r - すべての子プロセスのリセット、終了
詳細については、「プラットフォーム アシスタント サーバー アプリケーション: PAServer」を参照してください。
新規の PAServer マネージャ アプリケーション
Mac で動作する新しい GUI アプリケーションが追加されました。PAServer マネージャを使用すると、Mac および iOS アプリケーションの複数の PAServer プロセスを作成および管理できます。
詳細については、以下を参照してください。
XE7 での IDE の変更点
RAD Studio ガイド ツアー
このリリースには、ガイド ツアーを提供して RAD Studio を容易に習得できるようにする新しい技術が組み込まれています。ガイド ツアーは、特定の特長や機能を紹介する段階的な解説で構成されます。
これらの対話的なツアーでは、それぞれのステップに吹き出しが表示され、そのステップで何を行うかが説明されます。それらの説明を読み、すべての手順に従ってガイド ツアーを無事完了する必要があります。 [ウェルカム ページ]でしかるべきリンクをクリックすることにより、ガイド ツアーにアクセスすることができます。詳細については、「RAD Studio ガイド ツアー」を参照してください。
マルチデバイス アプリケーションのフォーム デザイナの変更点
新規のマルチデバイス フォームは、すべてのプラットフォーム(デスクトップおよびモバイル)に共通のデザイナで、スタイル付きのマスタ フォームが用意されており、異なるフォーム ファクタおよびレイアウトの複数のビューが使用可能です。「フォーム デザイナ」を参照してください。
デザイナはデフォルト スタイルの Win32 マスタ スタイルで開きます。[スタイル]ドロップダウン メニューを使用すれば、マスタ フォーム スタイルを変更できます。選択肢は、[Windows]、[OS X]、[iOS]、[Android]です。使用可能なコンポーネントおよびそれらのプロパティは、スタイルによって変わります。
すべてのコンポーネントはマスタ フォームに配置し、そこで適切に編集しなければなりません。モバイル アプリケーションをデザインする場合は、「モバイル チュートリアル:レイアウトを使用してフォームのさまざまなサイズや向きを調整する(iOS および Android)」で示した手順に従うことをお勧めします。
[ビュー]ドロップダウン メニューを使用すれば、[Android 7 インチ タブレット]や[iPhone 4 インチ]などの定義済みフォームをプロジェクトに追加できます。利用可能なビューの 1 つを選択すると、それに対応するフォームがプロジェクト フォルダに追加され、参照句がコードに追加されます。すべてのビューはマスタ フォームを継承しています。「マルチデバイス プロジェクトへのビューの追加」を参照してください。
ビューにより、プロジェクトを特定の定義済みレイアウトにパーソナライズすることができます。使用可能なビューでは、ターゲット デバイスの画面解像度が考慮されています。プロジェクトを特定の解像度用にパーソナライズする場合は、カスタマイズされたビューを追加できます。詳細については、「カスタマイズしたビューのビュー セレクタへの追加」を参照してください。
特定のターゲット向けにプロジェクトを実行するときは、対応するビューだけがアプリケーションに含まれます。
プロジェクト ファイルは配置マネージャに自動的に追加
[プロジェクト マネージャ]を使ってプロジェクトに対してファイルを追加または削除した場合、そのファイルは配置マネージャにより自動的に追加または削除されるようになりました。メディア ファイル、テキスト ファイルなど、アプリケーションに配置する任意のリソース ファイルを追加できます。
データベース ファイルのように、データベース ドライバやライセンス ファイル(機能ファイル)が必要なため、特別な取り扱いが必要になるファイルがあります。この場合は、[機能ファイル]ダイアログ ボックスが自動的に開くので、配置リストに追加する必要があるファイルを選択できます。
[機能ファイル]ダイアログ ボックスには、配置マネージャに対するファイルの自動的な追加/削除を無効にできる新しいオプション([必要に応じて自動的に表示する]チェック ボックス)が含まれています。このオプションをオフにした場合、[機能ファイル]ダイアログ ボックスは自動的には表示されなくなります。代わりに、[機能ファイル]ダイアログ ボックスを手動で開いて、機能ファイルを追加または削除する必要があります。
Android 用の[資格リスト]ページが追加
Android 用の[資格リスト]ページが追加されました(iOS と Mac OS X の場合は[資格リスト]を引き続きサポートしています)。[資格リスト]ページには、[プロジェクト|オプション...|資格リスト]でアクセスできます。
Android アプリケーションの資格を設定することができます。たとえば、モバイル アプリケーションに広告機能を追加したり、リモート プッシュ通知サポートの使用によりアプリケーションでリモート サーバーからデータを受信できるようにすることが可能です。
詳細については、「[資格リスト]」を参照してください。
Android へのスプラッシュ画面のサポート
Android アプリケーションのスプラッシュ画面を構成できるようになりました。[プロジェクト|オプション...|アプリケーション]を選択し、[スプラッシュ画像を組み込む]を有効にし、スプラッシュ画面画像のパスを入力し、スプラッシュ画面の配置を構成します。
詳細については、「スプラッシュ画像」および「スプラッシュ画面で 9-patch 画像を使用する方法」を参照してください。
IDE への Git バージョン管理システムの統合
RAD Studio では、バージョン管理されたプロジェクト用に Git バージョン管理システムをサポートするようになりました。また、新しい Subversion 機能がいくつか IDE に追加されました。
- 履歴マネージャには、統合された Git バージョン管理の情報がローカル リポジトリから得られ表示されるようになりました。Git か Subversion のどちらかでバージョン管理されているプロジェクトを開くと、[内容]、[情報]、[差分]の各タブにさらに情報が表示されます。
- IDE への Git の統合を利用して、以下が可能になりました。
- リモート Git リポジトリのコピーのクローンとその操作の開始
- 変更のローカル Git リポジトリへのコミット(送信)
- バージョン管理されたプロジェクトのGit リポジトリ ログの表示
- Subversion サポートを使用する場合は、以下が可能になりました。
- 新しい Subversion 変更リスト ラベルを使用して、変更されたファイルをグループ化してからリモート リポジトリにコミットする。
- 新しい SVN マージ ダイアログ ボックスを使用して、変更内容のマージを IDE から開始する。
- 新しい Subversion ブランチ切り替え機能を使用して、ローカル リポジトリの変更内容をリモート リポジトリの新しいブランチに向ける。
詳細については、以下を参照してください。
Delphi パーソナリティでは OS X および iOS シミュレータの場合に SDK が必要
OS X および iOS 向けの Delphi アプリケーションの開発に SDK(ソフトウェア開発キット)が必要になりました(SDK は、これまでは C++ の場合のみ必要でした)。
SDK(ソフトウェア開発キット)には、ターゲット プラットフォーム向けのアプリケーションをビルドするための一連のファイルが用意されており、ターゲット プラットフォーム上またはターゲット プラットフォームをサポートしている中間プラットフォーム(たとえば、iOS 向けの SDK が用意されている Mac OS X など)上でのそれらのファイルの実際の場所が定義されています。
Mac OS X または iOS(デバイスまたはシミュレータ)向けの新しい SDK を Mac から開発システムに追加する手順については、「Mac OS X または iOS 用 SDK の追加」を参照してください。
[プロジェクト マネージャ]から Android 向けのアプリケーションに Java ライブラリを追加
XE6 では、アプリケーションにカスタム Java ライブラリを追加するには、classes.dex
ファイルを手動で作成し配置する必要がありました。
XE7 では、[プロジェクト マネージャ]で、[Android]プラットフォーム ノード内にある新規の[ライブラリ]ノードを使ってカスタム Java ライブラリを簡単に追加できます。「[プロジェクト マネージャ]を使用した Java ライブラリのアプリケーションへの追加」を参照してください。
Metropolis UI アプリケーションの作成
XE7 では、Metropolis UI アプリケーションを直接[ファイル|新規作成]メニュー から作成することはできなくなりました。その代わり、次のいずれかを選択して、Metropolis UI アプリケーションを新規作成します。
- [ファイル|新規作成|その他...|Delphi プロジェクト|FireMonkey Metropolis UI アプリケーション]
- [ファイル|新規作成|その他...|Delphi プロジェクト|VCL Metropolis UI アプリケーション]
- [ファイル|新規作成|その他...|C++Builder プロジェクト|FireMonkey Metropolis UI アプリケーション]
- [ファイル|新規作成|その他...|C++Builder プロジェクト|VCL Metropolis UI アプリケーション]
XE7 でのランタイム ライブラリ(RTL)の変更点
Bluetooth 用の RTL API とアプリケーション テザリングでのクラシック Bluetooth のサポート
RTL には新規ユニット System.Bluetooth があり、そこには、アプリケーションの動作デバイスの Bluetooth 機能にアクセスするためのマルチデバイス API が用意されています。この新しいユニットでは、クラシック Bluetooth と Bluetooth LE(Bluetooth Low Energy)の両方をサポートしています。「Bluetooth の使用」を参照してください。
アプリケーション テザリングを使用して、IP 接続に加え、クラシック Bluetooth でもアプリケーションに接続できるようになりました。
アプリケーション テザリング接続(IP およびクラシック Bluetooth)と Bluetooth 用 RTL API のプラットフォーム サポートの状況を次の表にまとめます。
プラットフォーム | アプリケーション テザリング | RTL API | |||
---|---|---|---|---|---|
IP | クラシック Bluetooth | Bluetooth LE | |||
クライアント | サーバー | ||||
Windows |
8 以上 |
||||
Mac OS X | 10.9 以上 | ||||
iOS |
5 以上 |
6 以上 | |||
Android |
4.3 以上 |
アプリケーション テザリングでサブネット外部の接続をサポート
XE6 では、接続先のリモート デバイスを検出するメソッド AutoConnect および DiscoverManagers では、アプリケーションの動作デバイスが存在するローカル エリア ネットワーク(LAN)のサブネットでデバイスを探していました。その結果、アプリケーション テザリングを使用して、同じ LAN の異なるサブネットにあるデバイスや、まったく異なる IP アドレスのデバイスに接続することはできませんでした。
XE7 では、これらのメソッドのどちらにも省略可能なパラメータ Target
が用意されています。このパラメータを使用して、この動作をオーバーライドしリモート マネージャの検索先の IP アドレスまたはサブネットを指定することができます。「サブネット外部のアプリケーションへの接続」を参照してください。
並列プログラミング ライブラリ
新しい System.Threading ユニットをアプリケーションに組み込むことで、新しい並列プログラミング ライブラリを使用することができます。
詳細については、「並列プログラミング ライブラリの使用」を参照してください。
XML に関連する改良点
パフォーマンスを向上させる新しいクロスプラットフォーム対応 XML ベンダ
MSXML と ADOM に加えて、RAD Studio には、OmniXML という新しい XML ベンダが用意されるようになりました。クロスプラットフォーム対応 XML ベンダである OmniXML は、代わりのクロスプラットフォーム対応 XML ベンダである ADOM よりもはるかに良いパフォーマンスを示します。RAD Studio の OmniXML XML ベOmniXML をベースにしていますが、名前空間のサポートなど、さらに機能が追加されているほか、SOAP とも互換性があります。
XML ベンダを選択するための新しいシステム
「ドキュメント オブジェクト モデル(DOM)の使用」で説明されているように、RTL には、使用する XML ベンダを指定する新しいシステムが用意されています。
この新しい XML ベンダ選択システムでは、MSXML がデフォルトの XML ベンダとして指定されます。MSXML では Windows プラットフォームのみサポートしています。別の XML ベンダを指定しない場合、アプリケーションは Windows 以外のプラットフォームでは XML をサポートせず、他のプラットフォームでアプリケーションを実行すると、実行時例外が発生します。
別の XML ベンダを選択するには、RTL の XML 機能(たとえば TXMLDocument クラスなど)を使用するユニットに、選択するベンダのユニットへの参照を追加します。複数の XML ベンダ ユニットを追加した場合は、最初に参照したユニットが XML ベンダとして使用されます。この動作をオーバーライドするには、グローバル変数 DefaultDOMVendor の値を、目的とする XML ベンダのグローバル変数に変更します。
- メモ: 各 XML ベンダのユニットおよびグローバル変数については、「組み込み XML ベンダの一覧」を参照してください。
TXMLDocument コンポーネントを使用する場合は、その DOMVendor プロパティを使って XML ベンダを選択できます。DOMVendor の値を変更すると、このコンポーネントを使用しているユニットは指定の XML ベンダを使用するように構成されるため、ユニット参照または DefaultDOMVendor グローバル変数を手動で変更する必要はありません。
プラットフォームごとに異なる XML ベンダを使用する(たとえば、Windows では MSXML を、その他のプラットフォームでは OmniXML を使用する)には、次のような条件付きコンパイルを使用します。
Web エンコード/デコード用の新規ユニット
RTL には、Base64、HTML、URL のエンコード/デコード機能を提供する新規ユニット System.NetEncoding が用意されています。
RAD Studio の前バージョンに用意されているメソッドと、System.NetEncoding
に含まれているメソッドの対応関係を次の表に示します。
XE6 | XE7 |
---|---|
|
|
|
|
|
|
|
|
これまでサポートされていたメソッドの中には、AnsiString と UnicodeString を両方ともサポートしているものもあれば、AnsiString
のみサポートしているものもあります。新しい XE7 メソッドでは UnicodeString
のみサポートしています。XE7 で新しいメソッドを AnsiString
に対して使用するには、入力文字列とメソッドの結果を次のようにキャストする必要があります。
Delphi の場合:
AnsiStringResult := AnsiString(NewMethod(string(AnsiStringInput)));
C++ の場合:
AnsiStringResult = AnsiString(NewMethod(UnicodeString(AnsiStringInput)));
Windows プラットフォームとモバイル プラットフォーム向けの PCRE 8.35
XE7 では、PCRE ライブラリ(Perl 互換正規表現のサポートを提供するライブラリ)が次のようにアップグレードされました。
プラットフォーム | XE6 | XE7 |
---|---|---|
32 ビット Windows |
7.9 |
8.35 |
iOS デバイス |
8.31 | |
Mac OS X |
これらのプラットフォームでは、システムで使用可能なバージョンの PCRE を使用します。 |
- PCRE の以前のバージョンからの変更点を確認するには、公式の変更ログを参照してください。
- PCRE を使用する場合は、System.RegularExpressions ユニットのドキュメントを参照してください。
PCRE 8.35 では数字で始まるグループ名を使用できない
XE6 では、"1" や "2nd" など、数字とアルファベットの任意の組み合わせで構成される名前の名前付きグループを定義できました。たとえば、"(?<1>\w+)\s+(?<2>fish)\s*" などです。
(PCRE ライブラリの最新バージョンが組み込まれている)XE7 では、数字で始まるグループ名を使用できなくなりました。つまり、"1" や "2nd" などのグループ名はもう使用できません。ただし、名前の先頭文字でない限り、"g1" や "my2cents" などのように、名前に数字を使用することはまだできます。
zlib 1.2.8
RAD Studio には、zlib 圧縮ライブラリの新しいバージョン 1.2.8 が含まれています。
- zlib 1.2.7 以降の変更点を確認するには、公式の変更ログを参照してください。
- zlib を使用するには、System.ZLib ユニットのドキュメントを参照してください。
XE7 での VCL の変更点
Windows タスクバー ジャンプ リストの新規コンポーネント
Windows 7 以降の Windows には、タスクバー内の項目のコンテキスト メニューが用意されており、アプリケーションで最近開いたファイルにユーザーがすばやくアクセスできるようになっています。XE7 では、TJumpList コンポーネントを使用することで、アプリケーションのジャンプ リストで表示される情報をカスタマイズできます。
最近開いたファイルやよく使用するファイルの表示/非表示を切り替えたり、アプリケーションでよく行われるタスクにユーザーがすばやくアクセスできるようにするためのタスク エントリを用意したり、完全にカスタムのカテゴリや項目をアプリケーションのジャンプ リストに追加したりすることができます。
関連機能についての詳細は、「VCL タスクバー」を参照してください。
XE7 での C++ コンパイラの変更点
Win64 向けの Boost ライブラリと Dinkumware ライブラリの新しいバージョン
Boost ライブラリと Dinkumware ライブラリの新規バージョンがインストールされるようになりました(どちらも Win64 専用)。
- Dinkumware STL バージョン 6.40(Win64 向け)
- 「Dinkumware 標準 C++ ライブラリ」を参照してください。
- Boost ライブラリ バージョン 1.55(Win64 向け)
- 「Boost ライブラリ」を参照してください。
新規の iOS ヘッダー(libcplusplus)が追加
iOS ヘッダー libcplusplus が RAD Studio で使用されるようになりました。更新されたこれらのヘッダーには、アトミック操作やベクタのデフォルト初期化など、より多くの C++11 機能が用意されています。
[移動先...]コマンド
RAD Studio では、コード エディタのコンテキスト メニューで使用可能な[検索]コマンド(XE6 版で追加。C++ の場合)に追加された[移動先...]コマンドをサポートするようになりました。[移動先...]コマンドでは、アクティブなプロジェクト全体で、指定の検索条件に合う識別子や定数を探します。詳細については、以下を参照してください。
Delphi パッケージの場合、[出力 - C/C++]のオプションで名前空間の選択が無効に
C++ 出力ファイルの生成については、Delphi パッケージの場合と実行可能ファイルの場合とで、オプションが異なります。パッケージの場合は、次の 2 つの選択肢があります(.exe ファイルの場合は 11 個の選択肢)。
- [DCU を生成](C++ からパッケージを使用しない場合)
- [すべての C++Builder ファイル (パッケージ ライブラリを含む) を生成]
この変更により、Delphi パッケージが C++ アプリケーションで使用される場合に発生する可能性のある名前空間に関する問題が解消されます。
XE7 での Delphi コンパイラの変更点
動的配列に対する文字列風の操作をサポート
- 動的配列を文字列と同じように操作することができます。次に例を示します。
var
A: array of integer;
B: TBytes = [1,2,3,4]; //Initialization can be done from declaration
begin
...
A:=[1,2,3]; // assignation using constant array
A:=A+[4,5]; // addition - A will become [1,2,3,4,5]
...
end;
- 次のように、文字列操作に似た働きをするサポート ルーチンが追加されました。
I. Insert 関数では、インデックスの位置を先頭に動的配列を挿入します。これは、変更された配列を返します。
var
A: array of integer;
begin
...
A:=[1,2,3,4];
Insert(5,A,2); // A will become [1,2,5,3,4]
...
end;
II. Delete 関数は動的配列から要素を削除し、変更された配列を返します。
var
A: array of integer;
begin
...
A:=[1,2,3,4];
Delete(A,1,2); //A will become [1,4]
...
end;
III. Concat 関数を使用して、2 つの異なる動的配列を連結できます。
A := Concat([1,2,3],[4,5,6]); //A will become [1,2,3,4,5,6]
XE7 でのデータベースおよび接続機能の変更点
FireDAC の変更点
- FireDAC での BLOB パラメータのストリーミング サポートと MSSQL ファイル ストリームのサポート
- TFDParam の新規プロパティ : AsStream、AsStreams、IsDataSet、IsDatasets、IsObject、IsObjects、IsStream、IsStreams、IsUnicode、StreamMode
- TFDParam の新規メソッド: GetDataReader および SetStream
- TFDParams の新規メソッド: Close および Unprepare
- TFDAdapterDataSet の新規メソッド: CloseStreams
- デスクトップおよびモバイル向けの新規 IBLite ドライバ(既存の IB ドライバをベースにしたもの)
- New DriverID = 'IBLite'
- 新規プロパティ TFDPhysIBDriverLink.Lite
- DBMS API コマンド ネイティブ タイムアウトのサポート
- FireDAC ドライバでサポート: Advantage、Informix、SQL Server
- FireDAC 接続パラメータが[オブジェクト インスペクタ]にレコードとして表示されるようになりました
- TFDConnection.Params の型は TFDConnectionDefParams 基底クラスになりました。
- TFDConnection.DriverName に応じて、パラメータの型が TFDPhysXxxConnectionDefParams(Xxx はドライバ ID)のいずれか 1 つになります。
- [データ エクスプローラ]の機能強化
- 主キーとフィールドが表示されます。
- 外部キーとフィールドが表示されます。
- シーケンス/ジェネレータが表示されます。
- メタデータ書き込み機能
- 新規メソッド TFDTable.CreateTable
- TFDBatchMove.Options の新規オプション poCreateDest
- 新規メソッド IFDPhysCommandGenerator.GenerateCreateTable、GenerateDropTable
- 異なるデータベース間でテーブル データおよびメタデータをコピーするための新規コンポーネント TFDBatchMove
- 新規コンポーネント: TFDBatchMove、TFDBatchMoveTextReader、TFDBatchMoveTextWriter、TFDBatchMoveDataSetReader、TFDBatchMoveDataSetWriter、TFDBatchMoveSQLReader、TFDBatchMoveSQLWriter
- これまでのコンポーネント TFDDataMove は非推奨になりました。TFDDataMove の代わりに TFDBatchMove を使用します。
- TFDScript、TFDBatchMove、リーダーおよびライタ コンポーネント、TFDDataMove は新規の "FireDAC ETL" ページに移動しました。
- TFDCustomSchemaAdapter のシリアル化
- 新規メソッド: LoadFromStream、LoadFromFile、LoadFromStream、SaveToStream、SaveToFile
- 新規プロパティ: DataSets および ResourceOptions
エンタープライズ モビリティ サービス
新しいエンタープライズ モビリティ サービス(EMS)では、クラウドや社内にホストできるモバイル エンタープライズ アプリケーション プラットフォームを提供し、REST API やエンタープライズ データベース データを公開します。
EMS が開発されているのは、REST API サーバー、リモート データベース アクセス、ソリューション利用の追跡が組み込まれた包括的なソリューションを顧客に提供するためです。EMS データベースには、ユーザーのアクティビティが格納され、EMS コンソールでは、この情報を使って分析を行い、その結果(アナリティクス)を生成します。
EMS アーキテクチャの主要なコンポーネントは次のとおりです。
- EMS サーバーは、EMS クライアントに中核的な機能およびサービスを提供するコンポーネントです。EMS サーバーでは、アプリケーションの登録ユーザーやアクティビティなどの情報が格納されている EMS データベースを管理します(分析結果を生成します)。
- REST API は EMS データベース データへのアクセスに使用されます。EMS クライアントでは、EMS サーバーの REST 組み込み管理 API を呼び出すことにより、EMS データベース内の情報にアクセスできます。独自の EMS パッケージを作成しそれらのリソースを EMS サーバーに登録することにより、既存の EMS サーバーの機能を拡張することができます。
- EMS クライアントは、REST API を使用することにより、EMS サーバーに登録されているリソースにアクセスできるモバイルまたはデスクトップ アプリケーションです。EMS では FireDAC をサポートしているので、EMS FireDAC クライアント アプリケーションを作成できます。
- EMS コンソールでは、EMS データベースに格納されている情報を読み取り、お使いのデフォルト ブラウザに表示します。EMS コンソールには、ユーザーおよびグループの一覧が表示され、EMS データベースに格納されている分析結果のグラフも表示されます。
XE7 では、EMS 用の新規コンポーネントが IDE に追加されました。TEMSProvider や、(クライアント アプリケーションで FireDAC をサポートするための)TEMSFireDACClient などです。また、TBackendQuery などの既存の BaaS コンポーネントを EMS クライアント アプリケーションで使用することもできます。
EMS Update では、EMS サーバーおよび EMS コンソール サーバーの安定性とパフォーマンスが改善されています。
- 接続のプール。FireDAC 接続のプールを用いて接続して、データベース接続を確立する際の待ち時間を短縮できるようになりました。
- EMS サーバーに対する EMS ユーザー数および HTTP 接続数の最大化
- EMS コンソール サーバーの Web ファイル リソースを対象とするクロスオリジン リソース共有
Android プッシュ通知アプリケーションでの Parse プロバイダのサポート
RAD Studio REST BaaS フレームワークでは、Android プッシュ通知アプリケーションのプロバイダとして Parse BaaS をサポートするようになりました。これまでは、Parse プロバイダは RAD Studio iOS アプリケーションの場合にのみ使用できました。
Parse BaaS プロバイダからのプッシュ通知の受信を開始するには、RAD Studio アプリケーションを Android Parse プッシュ通知クライアントとして登録し、Parse クラウド サービスを構成します。
詳細については、「モバイル チュートリアル:リモート通知を使用する(iOS および Android)」と「Android プッシュ アプリケーションの作成」を参照してください。
BDE を削除
当社の最も古いデータベース ソリューションである BDE は非推奨の最終段階に達したため、RAD Studio から削除されました。削除されたのは、Bde.DBBdeWeb ユニットと Bde.DBTables ユニットです。代わりに、FireDAC などの新しいデータベース技術を使用してください。移行については、「BDE アプリケーションの FireDAC への移行」を参照してください。
BDE を引き続き使用する必要がある場合は、登録ユーザー向けサイト(http://cc.embarcadero.com/myreg)で外部インストーラが使用可能です。
BDE のヘルプは XE7 のヘルプに残っています。
[データ エクスプローラ]の機能強化
[データ エクスプローラ]には FireDAC アプリケーションの次のノードが表示されるようになりました。
- 主キーとそれらのフィールド
- 外部キーとそれらのフィールド
- ジェネレータ
DataSnap iOS コネクタでは ARC を使用
iOS 7 以降をサポートするため、DataSnap iOS コネクタでは ARC を使用する必要があります。
稼働中のコネクタで iOS 7 以降をサポートする場合は、ARC を使用するように既存の Objective-C コードを更新する必要があります。ARC については、Apple 社のドキュメント『Transitioning to ARC Release Notes(ARC への移行:リリース ノート)』(英語版)を参照してください。
「iOS Objective-C DataSnap モバイル コネクタ入門」では、ARC を使って新規の DataSnap iOS コネクタをゼロから作成する方法を示しています。
データベース関係のオンライン ヘルプの変更点
- チュートリアル:アプリケーションで FireDAC により REST DataSnap サーバーを使用する(新規)
- チュートリアル:アプリケーションで REST DataSnap サーバーを使用する(改訂)
- DataSnap.FireDACJSONReflect REST サーバーおよびクライアントのサンプル(新規)
XE7 でのデバッガの変更点
Mac での新しい PAServer マネージャ アプリケーション
新しい Mac GUI アプリケーション PAServer マネージャが PAServer(プラットフォーム アシスタント サーバー)と一緒に提供されるようになりました。PAServer マネージャを使用すれば、複数の PAServer インスタンスを作成および管理することができます。
詳細については、以下を参照してください。
モバイル デバッガでのマルチバイト サポート
- モバイル プラットフォーム(iOS および Android)向けのデバッガでは、UTF8、UTF16、UTF32 の各エンコーディングの Unicode 文字および文字列を使用できるようになりました。
- デバッガでは、iOS アプリケーションのファイル名で国際文字(hélène や éléments などの Unicode)を使用できるようになりました。
一般情報については、「マルチデバイス アプリケーションのデバッグ」を参照してください。
バイナリの info.plist ファイルが配置
info.plist ファイル(Mac および iOS アプリケーションに必要)は、キーとそれに関連付けられる値を記述した XML ファイルとして引き続き生成されます。
ただし、配置の場合、この XML ファイルはバイナリに変換されるようになりました。info.plist ファイルの内容については、「[バージョン情報]」を参照してください。
XE7 でのコマンドライン ユーティリティの変更点
Android 向けの新しいネイティブ ブリッジ ファイル ジェネレータ Java2OP.exe
Android 上でアプリケーションからカスタム Java ライブラリを使用できるようにするには、これまでは、Java クラス ファイルからネイティブ ブリッジ ファイルを手動で作成する必要がありました。
RAD Studio には、Delphi アプリケーションのネイティブ ブリッジ ファイルを自動的に作成できる新しいツール Java2OP.exe(Java to Object Pascal)が用意されています。この新しいツールを使用すれば、一連の JAR ファイルや Java クラス ファイルから、あるいは Android API の特定のサブセットからネイティブ ブリッジ ファイルを生成できます。
このリリースでは、登録ユーザー向けサイト(http://cc.embarcadero.com/myreg)で Java2OP.exe が使用可能です。
XE7 でのアプリケーション サンプルの変更点
製品に付属しているアプリケーション サンプルは再編成され、一部のアプリケーション サンプルはもう提供されていません。マルチデバイス アプリケーション開発により関係のある新しいサンプルは提供されていますが、関連性の低い古いサンプルは削除されました。
製品に付属しているアプリケーション サンプルの詳細については、以下を参照してください。
オンライン ヘルプの変更点
新しく追加された主なトピック:
- 「エンタープライズ モビリティ サービス(EMS)」は多くのトピック(たとえば以下など)で構成される新しいセクションです。
- アプリケーション テザリングの使用
- Bluetooth の使用
- モバイル チュートリアル:マルチビュー コンポーネントを使用して情報の代替ビューを表示する(iOS および Android)
- チュートリアル:LiveBinding を使用してコレクション リストを作成する(ListCollections サンプルで提供されているアプリケーションの作成方法を説明しています)
- FireMonkey の状態保存
- FireMonkey のネイティブ iOS コントロール
- ファイルの種類:インデックス
- Mac での PAServer マネージャの実行
- RAD Studio ガイド ツアー
オンライン ヘルプのいくつかの変更:
- フォーム デザイナ(マルチデバイス アプリケーションのデザインを行えるようになりました)
- モバイル チュートリアル:モバイル プラットフォームのアプリケーションを作成する(iOS および Android)(旧タイトルは「モバイル チュートリアル:FireMonkey モバイル アプリケーションを作成する(iOS および Android)」でした))