そこでLiveBinding
FireMonkeyフレームワーク
Delphi / C++Builderでは、昨年のリリースでFireMonkeyという新しいコンポーネントフレームワークを導入しました。
特長は3つあって、まず、マルチプラットフォーム対応であること。WindowsとMac OS X向けのGUIアプリケーションを構築できます。次に、ネイティブであること。CPU/GPUのフルパワーを使ってハイパフォーマンスで動きます。マルチプラットフォームだからといって性能では劣るということはありません。そして3番目は、ビジュアル的に優れていること。HD/3Dの高品質なグラフィックを使ったコンポーネントを利用できます。
LiveBindingとは
こういう高機能なUIが出てくると、先に挙げた問題に新しいテクノロジーで対応する必要性が増してきます。LiveBindingはそのための機能として用意されていますが、簡単にまとめると、次のようなことをしてくれます。
- UIコントロールのプロパティとオブジェクトを結び付けます
- オブジェクトの値が変更されると、UIコントロールのプロパティを変更します
- UIコントロールのプロパティが変更されると、オブジェクトの値を変更します
これで何ができるようになるかというと、
- UIコントロールとデータセットのフィールドを結び付け、表示・編集を自動化します
- UIコントロール同士を結び付け、一方のコントロールに対する変更によって他方の状態を変化させることができます(例えば、チェックボックスをクリックすると入力ボックスが無効になるといった処理)
- UIコントロールと任意のオブジェクトを結び付け、オブジェクトの表示・編集を自動化します
これらは、いずれもコードを一行も記述しません。コンポーネントに用意されたLiveBindingのプロパティを設定するだけで、UIコントロールとデータを同期/変更ができます。
LiveBindingをビジュアルに
Delphi / C++Builder XE3の新機能Visual LiveBinding
先日発売されたDelphi / C++Builderの最新バージョン「XE3」では、このLiveBindingが使いやすくなっています。その名も「Visual LiveBinding」。マウス操作で、ビジュアルにLiveBindingの設定ができるというツールです。
UIコントロールは画面上に複数ありますし、データにもさまざまなフィールドがあります。これらを結び付ける作業は、前バージョンではオブジェクトインスペクタで行っていました。オブジェクトインスペクタは、選択したコンポーネントのプロパティを設定するために使います。
複数あるUIコントロールにデータを結び付けるには、コンポーネントをひとつずつ選択して設定を行わなければなりませんし、どのような設定がなされているのか俯瞰することができません。
LiveBindingデザイナ
Visual LiveBindingでは、LiveBindingデザイナというツールを使います。
ご覧のような画面で、データ(左のBindSourceDB1)とUIコントロール(Edit1、Memo1など)を結び付けます。「マウスを線で結ぶだけでデータとUIコントロールを連携させる」そのままですね。
早速簡単なアプリケーションを作成して確認してみましょう。Visual LiveBindingはDelphi / C++Builderのどのようなアプリケーションでも利用できます。XE3では、Windows APIをカプセル化してWindows向けのビジュアル開発が可能なフレームワークVCL(これはDelphi 1の頃からありますね)と、Windows / Mac OS Xでクロス開発ができるFireMonkeyフレームワークを使用できます。Visual LiveBindingは、このどちらでも利用可能です。
ここでは、FireMonkeyアプリケーションを作成してみましょう。