Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiIDERAD Studio

DelphiのLiveBindingデザイナを利用した動的バインディング

delphi-webview2-labs

ここ数週間にわたって、このブログでは、Delphiの式エンジンバインディング式とコンポーネント、そしてBindingsListコンポーネントについて説明してきました。シリーズの第4回となる今回のブログでは、動的バインディングによってアプリケーションを構成するための簡単で直感的な方法、Visual LiveBindingsのビジュアルツール(デザイナ)について紹介いたします。

これはLiveBindingデザイナ(IDEメニューの[表示] | [ツールウィンドウ]メニューから利用可能)と呼ばれ、設計時のフォームまたはデータモジュールと一緒に表示できる追加のペインです。 

下図は、前回のブログのデモをLiveBindingデザイナによってどのように表示されるかを示した例です。

from-bindings-list-to-visual-livebindings-ja-1-2483440

ここでは、LiveBindingデザイナを利用して直接バインディングする簡単な例を紹介します。サンプルプログラムの作成は、以下の手順の通りです。

  • 新しいフォームを作成
  • TNumberBoxコントロールとTProgressbarコントロールをフォーム上に配置
  • LiveBindingデザイナで、下図のようにNumberBoxのValueプロパティからProgressbarのPositionプロパティへドラッグ
from-bindings-list-to-visual-livebindings-ja-2-1859678

LiveBingingデザイナ内のコントロール同士を結ぶ矢印(ここでは、NumberBox1からProgressBar1を結ぶ矢印)を有効にして値を変更すれば、Delphiでコードを書かなくても動作します。また、NumberBoxに文字を入力すると、コントロールを離れたときに値が更新されます。(そのため、入力のフォーカスを受けられるコントロールが少なくとももう一つ必要です。)

ここで紹介したシナリオは非常にシンプルですが、これ以外にも接続できるコントロールのプロパティはたくさんあります。そのため作成してるアプリケーションによっては、LiveBindingデザイナで要素の下部にある3つのドットをクリックし、「バインド可能なメンバ」から任意のバインドしたいプロパティを選択する必要があります。

from-bindings-list-to-visual-livebindings-ja-3-5786192
  (LiveBindingデザイナで要素の下部にある3つのドットをクリック)
from-bindings-list-to-visual-livebindings-ja-4-1554004

ここで重要なことは、このデザイナと関連するウィザードは、主にデータベースのデータバインディングのシナリオに焦点を当てているということです。そのためUIコントロールの関連付けは、今回紹介した内容のように単純ではなく、データバインディングの場合はもう少し複雑です。データバインディングについては、次回のブログでご紹介します。


What's New for RAD Studio 11

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

関連記事
C++DelphiRAD Studio

RAD Studio 11 Alexandriaにおけるプラットフォーム識別子の変更点

DelphiRAD Studio

Delphi 11 Alexandria Defines

C++DelphiRAD Studioアップデートニュース

RAD Studio 11 Alexandria November Patchがリリースされました

DelphiRAD Studio

Android 11と iOS 15.1で動作済みのZXingデモアプリを公開

コメント

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

IN THE ARTICLES