4

私はオブジェクトを持っています。コンポーネントではなくコントローラーと呼びましょう。有効なプロパティがあります。live-bindings を使用して、フォーム上の一部のコンポーネントの有効なプロパティにバインドすることはできますか? つまり、コンポーネントの有効なプロパティが変更された場合、それにバインドされているコンポーネントはそれに応じて有効なプロパティが設定されますか?

TController が TComponent の子孫だった場合の方法がわかります。TController をコンポーネントにラップできることはわかっていますが、これを行う直接的な方法があるかどうか尋ねています。

4

2 に答える 2

5

これは BindScope で可能です: BindScope1.DataObject := Controller;

  object BindingsList1: TBindingsList
    Methods = <>
    OutputConverters = <>
    UseAppManager = True
    Left = 464
    Top = 56
    object BindExpression1: TBindExpression
      Category = 'Binding Expressions'
      ControlComponent = Label1
      SourceComponent = BindScope1
      SourceExpression = 'enabled'
      ControlExpression = 'visible'
      NotifyOutputs = False
      Direction = dirSourceToControl
    end
    object BindExpression2: TBindExpression
      Category = 'Binding Expressions'
      ControlComponent = CheckBox1
      SourceComponent = BindScope1
      SourceExpression = 'enabled'
      ControlExpression = 'IsChecked'
      NotifyOutputs = False
      Direction = dirSourceToControl
    end
  end

TBindings.Notify(Controller, 'Enabled'); 関連するすべての式を評価します。上の例では、Label1.Visible と Checkbox1.IsChecked

于 2011-10-20T18:50:07.120 に答える
1

数日前、地元の Be-Delphi で Delphi XE2 の LiveBinding に関するプレゼンテーションを行いました。スライドと完全な「ホワイト ペーパー」または「チュートリアル」ドキュメントを自分の Web サイトに公開しました。前の章では、実行時に作成された TPerson インスタンスにコンポーネントをバインドする方法を説明しようとしました。多分それはあなたにとっていくつかの興味深い情報を持っています:

Delphi XE2 での LiveBinding の概要

于 2011-11-21T11:49:34.103 に答える