Delphi XE2 新功能 liveBinding 介绍
2013-02-19 12:11
666 查看
新版本的Delphi XE2 使用FireMonkey框架,它不同于VCL,以往的数据感知控件不能放在它上面,所以XE2提供了LiveBinding功能作为替代方案。另外它也是通用的基础设施,同样可用于传统的VCL.这里用一个极其简化的例子说明它的意图,在窗体上放一个edit和一个label,找到label的LiveBings属性,选New
LiveBinding...,再选择TBindExpressing.
![](http://www.foolcode.com/wp-content/uploads/2011/09/201109022350505416.jpg)
然后设置属性如下图所示:
![](http://www.foolcode.com/wp-content/uploads/2011/09/201109022350513945.jpg)
这样就把 edit 的 text 属性和 label 的 caption 属性绑定起来了,不用写任何代码。运行后,会看到 label 的内容就是 edit 的 text 值,但是在 edit 中输入内容,label 却没有跟着变化,如果要重新获得 edit 的值,可以用代码:
procedure TForm1.BindExpressionLabel1AssignValue(
AssignValueRec: TBindingAssignValueRec; var Value: TValue;
var Handled: Boolean);
begin
value:=trim(value.AsString);
end;
![](http://www.foolcode.com/wp-content/uploads/2011/09/201109022350527076.jpg)
选择它,出现下面的图,这个界面里的树,描述了当前窗体上放置的数据集,和它的字段,设置好后,它看起来就象是个 TRzDbLabel 了,实时显示字段值,不需要象上面的例子那样写Evaluate()
![](http://www.foolcode.com/wp-content/uploads/2011/09/20110902235053763.jpg)
转自http://www.cnblogs.com/hieroly/archive/2012/02/14/2350443.html
LiveBinding...,再选择TBindExpressing.
![](http://www.foolcode.com/wp-content/uploads/2011/09/201109022350505416.jpg)
然后设置属性如下图所示:
![](http://www.foolcode.com/wp-content/uploads/2011/09/201109022350513945.jpg)
这样就把 edit 的 text 属性和 label 的 caption 属性绑定起来了,不用写任何代码。运行后,会看到 label 的内容就是 edit 的 text 值,但是在 edit 中输入内容,label 却没有跟着变化,如果要重新获得 edit 的值,可以用代码:
Self
.
BindExpressionLabel11
.
Evaluate;
//这个BindExpressionLabel11,就是刚才点 New LiveBinding... 时新建的对象。
BindExpressionLabel11 的 SourceComponent 属性,用于指定数据来源于哪里(哪个对象)。SourceExpression 属性,是一个表达式,示例中只是简单的写了 text,这个 text 就是 SourceComponent 的属性(也就是指 TEdit 的属性)。 还可以写这样的表达式:
Text+'aaa'
name+text
但是却不能写 trim(text) 这样的表达式,不过我们可以用它的 OnAssignValue 事件来实现这个功能,这个事件在 Evaluate 时触发,表达式所计算出来的值被放在事件的 var Value: TValue 参数里,它是个var 的,所以可以修改它的值:
procedure TForm1.BindExpressionLabel1AssignValue(
AssignValueRec: TBindingAssignValueRec; var Value: TValue;
var Handled: Boolean);
begin
value:=trim(value.AsString);
end;
LiveBingings 也可以感知数据集,但是要在 FireMonkey 2D Application 环境下,在窗体上放一个 label,同样再找到 LiveBindings 属性,会发现它多了一项 Link to DB Field...
![](http://www.foolcode.com/wp-content/uploads/2011/09/201109022350527076.jpg)
选择它,出现下面的图,这个界面里的树,描述了当前窗体上放置的数据集,和它的字段,设置好后,它看起来就象是个 TRzDbLabel 了,实时显示字段值,不需要象上面的例子那样写Evaluate()
![](http://www.foolcode.com/wp-content/uploads/2011/09/20110902235053763.jpg)
转自http://www.cnblogs.com/hieroly/archive/2012/02/14/2350443.html
相关文章推荐
- 使用LiveBinding Delphi XE2
- Delphi XE2 之 FireMonkey 入门(22) - 数据绑定: BindingSource、BindingName、FindBinding()、Binding[]
- Delphi XE2 新功能:LiveBindings --- 把对象之间的属性绑定起来
- 转贴一组 Delphi 官方网站介绍 IDE 功能的动画
- libEasyScreenLive库功能介绍和接口说明与调用
- Delphi XE2 之 FireMonkey 入门(22) - 数据绑定: BindingSource、BindingName、FindBinding()、Binding[]
- Delphi XE2 新功能试用:ZIP压缩文件的操作
- delphi的 PosEx 函数功能介绍
- Delphi 利用 LiveBinding 将对象绑定到界面元素
- RAD Studio, Delphi and C++Builder 10.1 Berlin 新版本功能介绍 - 首场在线教学
- enable_share_from_this功能介绍
- iOS开发关于微信摇一摇功能的简单的介绍
- TangYuan使用教程-功能介绍
- PackManager和ActivityManager的功能介绍-->转
- DELPHI XE2马上推出
- Ubuntu根目录下各文件的功能介绍
- 教学影片:如何建立Silveright图示菜单(Silverlight的鼠标事件功能介绍)
- 神奇的shell命令行输入与输出功能介绍
- Windows Server 2012---任务管理功能介绍
- DM9000寄存器功能详细介绍