LiveBindingsでチェックボックスにバインドする方法を紹介します。
真偽値(Boolean)値をチェックボックスにバインドする
真偽値(Boolean)値をチェックボックスにバインドするときは、データフィールドのrequiredプロパティの値に注意する必要があります。
VCLアプリケーションの場合、データフィールドのrequiredプロパティの値がFalseになっていると、チェックボックスは3つの状態をとります。
データフィールドのrequiredプロパティの値がTrueになっているとき、チェックボックスはグレー表示の状態(cbGrayed)を選択できません。
また、FireMonkeyアプリケーションの場合は、requiredプロパティの値がTrueでもFalseでもグレー表示の状態(cbGrayed)を選択することはできない(NULLを設定することはできない)ようです。
文字列(String)をチェックボックスにバインドする
チェックボックスの状態は、データの持つ文字列の値が’True’のときはチェックボックスはチェックされた状態(cbChecked)、’False’のときはチェックされていない状態(cbUnchecked)、それ以外のときはグレー表示の状態(cbGrayed)になります。
- ‘True’ =>
(cbChecked)
- ‘False’ =>
(cbUnchecked)
- それ以外 =>
(cbGrayed)
文字列の値は、チェックボックスの状態がチェックされた状態(cbChecked)になると’True’、チェックされていない状態(cbUnchecked)になると’False’、グレー表示の状態(cbGrayed)になると”(空文字)になります。
(cbChecked) => ‘True’
(cbUnchecked) => ‘False’
(cbGrayed) => ”(空文字)
‘True’や’False’以外の文字列を使用する場合は、値を変換する必要があります。
値をチェックボックスに設定するときには、TLinkControlToFieldのCustomFormatプロパティに設定した式が使用されます。
チェックボックスの状態を値に設定するときは、TLinkControlToFieldのCustomParseプロパティに設定した式が使用されます。
チェックされている状態を’T’、チェックされていない状態を’F’にするには、次のようにします。
TLinkControlToFieldのCustomFormatプロパティ
ToStr(%s) <> "F"
TLinkControlToFieldのCustomParseプロパティ
IfThen(ToStr(%s) = "True", "T", "F")
TLinkControlToFieldのプロパティを編集するには、LiveBindingデザイナでコントロールを結んでいる矢印をクリックして選択します。
数値(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」をご覧ください。