LiveBindingsでチェックボックスにバインドするには

LiveBindingsでチェックボックスにバインドする方法を紹介します。

真偽値(Boolean)値をチェックボックスにバインドする

001

真偽値(Boolean)値をチェックボックスにバインドするときは、データフィールドのrequiredプロパティの値に注意する必要があります。

005
006
007
008

VCLアプリケーションの場合、データフィールドのrequiredプロパティの値がFalseになっていると、チェックボックスは3つの状態をとります。

  • Trueのとき

    チェックされた状態(cbChecked)
    002

  • Falseのとき

    チェックされていない状態(cbUnchecked)
    003

  • NULLのとき

    グレー表示の状態(cbGrayed)
    004

データフィールドのrequiredプロパティの値がTrueになっているとき、チェックボックスはグレー表示の状態(cbGrayed)を選択できません。

また、FireMonkeyアプリケーションの場合は、requiredプロパティの値がTrueでもFalseでもグレー表示の状態(cbGrayed)を選択することはできない(NULLを設定することはできない)ようです。

文字列(String)をチェックボックスにバインドする

チェックボックスの状態は、データの持つ文字列の値が’True’のときはチェックボックスはチェックされた状態(cbChecked)、’False’のときはチェックされていない状態(cbUnchecked)、それ以外のときはグレー表示の状態(cbGrayed)になります。

  • ‘True’ => cbChecked(cbChecked)
  • ‘False’ => cbUnchecked(cbUnchecked)
  • それ以外 => cbGrayed(cbGrayed)

文字列の値は、チェックボックスの状態がチェックされた状態(cbChecked)になると’True’、チェックされていない状態(cbUnchecked)になると’False’、グレー表示の状態(cbGrayed)になると”(空文字)になります。

  • cbChecked(cbChecked) => ‘True’
  • cbUnchecked(cbUnchecked) => ‘False’
  • cbGrayed(cbGrayed) => ”(空文字)

‘True’や’False’以外の文字列を使用する場合は、値を変換する必要があります。

値をチェックボックスに設定するときには、TLinkControlToFieldのCustomFormatプロパティに設定した式が使用されます。
チェックボックスの状態を値に設定するときは、TLinkControlToFieldのCustomParseプロパティに設定した式が使用されます。

チェックされている状態を’T’、チェックされていない状態を’F’にするには、次のようにします。

TLinkControlToFieldのCustomFormatプロパティ

ToStr(%s) <> "F"

TLinkControlToFieldのCustomParseプロパティ

IfThen(ToStr(%s) = "True", "T", "F")

TLinkControlToFieldのプロパティを編集するには、LiveBindingデザイナでコントロールを結んでいる矢印をクリックして選択します。

010

009

数値(Integer)をチェックボックスにバインドする

文字列の時と同様に、TLinkControlToFieldのCustomFormatプロパティやCustomParseプロパティを設定する必要があります。

チェックされている状態を「0」、チェックされていない状態を「-1」にするには、次のようにします。

TLinkControlToFieldのCustomFormatプロパティ

ToStr(%s) <> "-1"

TLinkControlToFieldのCustomParseプロパティ

IfThen(ToStr(%s) = "True", "0", "-1")

TLinkControlToFieldのCustomFormatプロパティやCustomParseプロパティで使用できるメソッド

上の例では、「ToStr」や「IfThen」を使用しました。
他にも使用できるメソッドが用意されています。

詳細はマニュアル「デフォルトの LiveBinding メソッド – RAD Studio」をご覧ください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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