在窗体上添加 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 ...

Delphi XE2 之 FireMonkey 入门(22) - 数据绑定: BindingSource、BindingName、FindBinding()、Binding[]的更多相关文章

  1. Delphi XE2 之 FireMonkey 入门(32) - 数据绑定: TBindingsList: TBindList、TBindPosition [未完成...]

    Delphi XE2 之 FireMonkey 入门(32) - 数据绑定: TBindingsList: TBindList.TBindPosition [未完成...] //待补...

  2. Delphi XE2 之 FireMonkey 入门(31) - 数据绑定: 绑定数据库

    Delphi XE2 之 FireMonkey 入门(31) - 数据绑定: 绑定数据库 一.全设计时操作: 先在窗体上放置控件: DataSource1    : TDataSource; Clie ...

  3. Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件

    Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件 表达式中的函数有 ...

  4. Delphi XE2 之 FireMonkey 入门(29) - 数据绑定: TBindingsList: 表达式的 Evaluate() 方法

    Delphi XE2 之 FireMonkey 入门(29) - 数据绑定: TBindingsList: 表达式的 Evaluate() 方法 TBindingsList 中可能不止一个表达式, 通 ...

  5. Delphi XE2 之 FireMonkey 入门(28) - 数据绑定: TBindingsList: 表达式函数测试: SelectedText()、CheckedState()

    Delphi XE2 之 FireMonkey 入门(28) - 数据绑定: TBindingsList: 表达式函数测试: SelectedText().CheckedState() 示例构想: 用 ...

  6. Delphi XE2 之 FireMonkey 入门(27) - 数据绑定: TBindingsList: TBindScope

    Delphi XE2 之 FireMonkey 入门(27) - 数据绑定: TBindingsList: TBindScope 如果在编写表达式时, 如果能够随意指认需要的控件就好了(通过 Owne ...

  7. Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems

    Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems 如果要给一对 "源控件" 和 " ...

  8. Delphi XE2 之 FireMonkey 入门(25) - 数据绑定: TBindingsList: 表达式的灵活性及表达式函数

    Delphi XE2 之 FireMonkey 入门(25) - 数据绑定: TBindingsList: 表达式的灵活性及表达式函数 绑定表达式中可以有简单的运算和字符串连接, 但字符串需放在双引号 ...

  9. Delphi XE2 之 FireMonkey 入门(24) - 数据绑定: TBindingsList: TBindExpression.Direction

    在学习 BindingSource 属性时, 可以让两个控件互为绑定源; TBindExpression 对应的功能是 Direction 属性. 先在窗体上添加 Edit1.Edit2.Bindin ...

随机推荐

  1. thinkphp5 隐藏前台入口文件index.php 后台入口文件admin.php不隐藏

    情景:应用目录下有两个模块 admin(后台) 和 home(前台) 需求:1.访问前台(home)时隐藏index.php  即 域名/home/前台控制器/前台控制器里的方法 这样的访问模式 2. ...

  2. 已知链表头结点指针head,写一个函数把这个链表逆序

    Node* ReverseList ( Node *head ) { if ( head == NULL || head->next == NULL ) return head; Node *p ...

  3. LVS集群的ipvsadm命令用法

    准备一台Linux服务器,安装ipvsadm软件包,练习使用ipvsadm命令,实现如下功能: - 使用命令添加基于TCP一些的集群服务 - 在集群中添加若干台后端真实服务器 - 实现同一客户端访问, ...

  4. vim查找和替换

    https://www.cnblogs.com/huxinga/p/7942194.html %s/husband/丈夫/g

  5. 移动端适配 rem

    前置知识: 物理像素(physical pixel,device pixel) 物理像素(设备像素),显示设备中一个最微小的物理部件.每个像素可以根据操作系统设置自己的颜色和亮度. 设备独立像素(de ...

  6. git初始化第一次拉取线上操作

    git: 所有的filename都代表文件名称 一次:git clone 地址    第一步:更新 git pull   第二步:查看修改状态 git status   第三步:根据修改状态查看需要添 ...

  7. Linux下Centos7对外开放端口

    转载:https://blog.csdn.net/realjh/article/details/82048492 命令集合: ()查看对外开放的端口状态 查询已开放的端口 netstat -anp 查 ...

  8. python 获取系统环境变量 os.environ and os.putenv

    从一段code说起 “if "BATCH_CONFIG_INI" in os.environ:” 判断环境变量的值有没有定义 如果定义的话就去环境变量的值,否则就取当前目录下的co ...

  9. 【03】Python 文件读写 JSON

    1 打开文件 文件操作步骤: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 1.1 打开方法 f = open('xxx.txt') #需f.close( ...

  10. 进度对话框QProgressDialog

    继承于  QDialog import sys,time from PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QProgress ...