ここ数週間にわたって、このブログでは、Delphiの式エンジン、バインディング式とコンポーネント、そしてBindingsListコンポーネントについて説明してきました。シリーズの第4回となる今回のブログでは、動的バインディングによってアプリケーションを構成するための簡単で直感的な方法、Visual LiveBindingsのビジュアルツール(デザイナ)について紹介いたします。
これはLiveBindingデザイナ(IDEメニューの[表示] | [ツールウィンドウ]メニューから利用可能)と呼ばれ、設計時のフォームまたはデータモジュールと一緒に表示できる追加のペインです。
下図は、前回のブログのデモをLiveBindingデザイナによってどのように表示されるかを示した例です。
ここでは、LiveBindingデザイナを利用して直接バインディングする簡単な例を紹介します。サンプルプログラムの作成は、以下の手順の通りです。
- 新しいフォームを作成
- TNumberBoxコントロールとTProgressbarコントロールをフォーム上に配置
- LiveBindingデザイナで、下図のようにNumberBoxのValueプロパティからProgressbarのPositionプロパティへドラッグ
LiveBingingデザイナ内のコントロール同士を結ぶ矢印(ここでは、NumberBox1からProgressBar1を結ぶ矢印)を有効にして値を変更すれば、Delphiでコードを書かなくても動作します。また、NumberBoxに文字を入力すると、コントロールを離れたときに値が更新されます。(そのため、入力のフォーカスを受けられるコントロールが少なくとももう一つ必要です。)
ここで紹介したシナリオは非常にシンプルですが、これ以外にも接続できるコントロールのプロパティはたくさんあります。そのため作成してるアプリケーションによっては、LiveBindingデザイナで要素の下部にある3つのドットをクリックし、「バインド可能なメンバ」から任意のバインドしたいプロパティを選択する必要があります。
ここで重要なことは、このデザイナと関連するウィザードは、主にデータベースのデータバインディングのシナリオに焦点を当てているということです。そのためUIコントロールの関連付けは、今回紹介した内容のように単純ではなく、データバインディングの場合はもう少し複雑です。データバインディングについては、次回のブログでご紹介します。