zoukankan      html  css  js  c++  java
  • Delphi XE2 之 FireMonkey 入门(22)


    在窗体上添加 TrackBar1、Edit1、Label1, 然后设置属性(可在设计时):
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Edit1.BindingSource := TrackBar1;  //将 TrackBar1 的值绑定在 Edit1
      Label1.BindingSource := TrackBar1; //将 TrackBar1 的值绑定在 Label1
    end;
    {之后, Edit1.Text 和 Label1.Text 会同步 TrackBar1.Value 值}


    不同类型值的沟通, 我想应该是依赖于 FM 组件新增的 Data 属性, 它是 Variant 类型的:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(TrackBar1.Data); //TrackBar1.Data <- TrackBar1.Value
      ShowMessage(Label1.Data);    //Label1.Data <- Label1.Text
      ShowMessage(Edit1.Text);     //Edit1.Data <- Edit1.Text
    end;


    有些控件没有 BindingSource 属性(如 TButton、TPanel), 是因为它没必要有(但在使用专用绑定控件时可以).
    两个控件互为数据源后, 就可以互通数据了:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Edit1.BindingSource := Edit2;
      Edit2.BindingSource := Edit1;
    end;


    如果给拥有 BindingSource 属性的控件指定了 BindingName ...:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit1.BindingName := 'bn1'; //
    
      {可以通过其上层控件的 FindBinding() 方法找到它}
      ShowMessage(Self.FindBinding('bn1').ClassName);
      ShowMessage(TEdit(FindBinding('bn1')).Text);
    
      {可以通过其上层控件的 Bingding[] 属性读取或修改其 Data 值}
      Self.Binding['bn1'] := 'NewText';
      ShowMessage(Self.Binding['bn1']); //NewText
    end;


    XE2 的绑定功能(不仅仅在 FM)比我之前的想象要强大得多, 还有 TBindingsList、TBindingsScope、TBindScopeDB、TBindNavigator ...
  • 相关阅读:
    POJ 2752 Seek the Name, Seek the Fame
    POJ 2406 Power Strings
    KMP 算法总结
    SGU 275 To xor or not to xor
    hihocoder 1196 高斯消元.二
    hihoCoder 1195 高斯消元.一
    UvaLive 5026 Building Roads
    HDU 2196 computer
    Notions of Flow Networks and Flows
    C/C++代码中的笔误
  • 原文地址:https://www.cnblogs.com/dzdd/p/3346853.html
Copyright © 2011-2022 走看看