• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

DelphiXE2新功能liveBinding介绍

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

新版本的Delphi XE2 使用FireMonkey框架,它不同于VCL,以往的数据感知控件不能放在它上面,所以XE2提供了LiveBinding功能作为替代方案。另外它也是通用的基础设施,同样可用于传统的VCL.这里用一个极其简化的例子说明它的意图,在窗体上放一个edit和一个label,找到label的LiveBings属性,选New LiveBinding...,再选择TBindExpressing.

然后设置属性如下图所示:

这样就把 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... 

选择它,出现下面的图,这个界面里的树,描述了当前窗体上放置的数据集,和它的字段,设置好后,它看起来就象是个 TRzDbLabel 了,实时显示字段值,不需要象上面的例子那样写Evaluate()

引自  FoolCode 愚人笔记


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
010——MATLAB运行错误跳到下一个循环发布时间:2022-07-18
下一篇:
Matlab绘制幅值谱和相位谱发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap