博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi XE2 之 FireMonkey 入门(27) - 数据绑定: TBindingsList: TBindScope
阅读量:6255 次
发布时间:2019-06-22

本文共 1304 字,大约阅读时间需要 4 分钟。

  hot3.png

如果在编写表达式时, 如果能够随意指认需要的控件就好了(通过 Owner 也可以勉强做到), TBindScope 就是解决这个问题的.
示例设想: 把三个 TEdit 的 Text 绑定到一个 TLabel.
在窗体上添加 Label1、Edit1、Edit2、Edit3、BindingsList1、BindScope1; 激活 Edit1 和窗体的默认事件.

unit Unit1;interfaceuses  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, Data.Bind.EngExt,  Fmx.Bind.DBEngExt, Data.Bind.Components, FMX.Layouts, FMX.Edit;type  TForm1 = class(TForm)    Edit1: TEdit;    Edit2: TEdit;    Edit3: TEdit;    Label1: TLabel;    BindingsList1: TBindingsList;    BindScope1: TBindScope;    procedure FormCreate(Sender: TObject);    procedure Edit1Change(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.fmx}procedure TForm1.FormCreate(Sender: TObject);begin  with TBindExpression.Create(BindingsList1) do  begin    ControlComponent := Label1;    ControlExpression := 'Text';    SourceComponent := BindScope1; //把 BindScope1 指定为源组件, 之后可以在表达式中直接使用控件名    SourceExpression := 'Format("%s,%s,%s", Edit1.Text, Edit2.Text, Edit3.Text)';    Active := True;  end;  BindScope1.Active := True; //  Edit2.OnChange := Edit1.OnChange;  Edit3.OnChange := Edit1.OnChange;end;procedure TForm1.Edit1Change(Sender: TObject);begin  BindingsList1.Notify(Sender, '');end;end.

转载于:https://my.oschina.net/hermer/blog/320221

你可能感兴趣的文章
redhat5.5安装jdk.bin
查看>>
【web JSP basePath】basePath的含义
查看>>
事件(二)——Jquery事件模型
查看>>
U3D系列第二套教学视频上线--协程和异步加载
查看>>
PKUWC2018游记
查看>>
TCB建立连接
查看>>
使用private私有化
查看>>
position元素定位详述
查看>>
SGU 185.Two shortest (最小费用最大流)
查看>>
SGU 149. Computer Network
查看>>
Sql异常②
查看>>
常用git命令汇总
查看>>
Spring Boot嵌入式的Servlet容器
查看>>
【Java】 ArrayList和LinkedList实现(简单手写)以及分析它们的区别
查看>>
PYTHON 词云
查看>>
C++ 指针 部分
查看>>
springboot入门 —— 报错
查看>>
计算器作业(摘要算法)
查看>>
嵌入式 Linux 学习 之路
查看>>
关于微信获取access_token接口,返回值为-1000的问题
查看>>