网上文摘 最近更新 下载排行 资源分类 下载指南
经典编程资源 精彩不容错过
设为首页
加入收藏
联系我们
当前位置:Delphi园地技巧文章编程心得 → Delphi XE2 新功能:LiveBindings --- 把对象之间的属性绑定起来
Delphi XE2 新功能:LiveBindings --- 把对象之间的属性绑定起来
日期:2011年9月9日 作者: 人气: 查看:[大字体 中字体 小字体]

XE2 有了 FireMonkey 框架,它不同于 VCL ,以往的数据感知控件不能放在它上面,所以 XE2 提供了 LiveBindings 功能作为替代方案。另外它也是个通用的基础设施,同样可用于传统的VCL

这里用一个极简化的例子说明它的意图,在窗体上放一个 edit 和一个 label,找到 label 的 LiveBindings 属性,选 New LiveBinding... ,再选择 TBindExpression


然后设置属性如图所示



这样就把 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 的,所以可以修改它的值。

  1. procedure TForm1.BindExpressionLabel1AssignValue(  
  2.   AssignValueRec: TBindingAssignValueRec; var Value: TValue;  
  3.   var Handled: Boolean);  
  4. begin  
  5. value:=trim(value.AsString);  
  6. end;  

LiveBingings 也可以感知数据集,但是要在 FireMonkey 2D Application 环境下,在窗体上放一个 label,同样再找到 LiveBindings 属性,会发现它多了一项 Link to DB Field...


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

(出处:http://blog.csdn.net/zzzl/article/details/6698202)

相关文章:
·XE2 beta Embarcadero® Delphi® XE Version 16.0.4203.41037下载
·Delphi XE2 Pulsar 安装体验
·RadPHP XE2官方试用版下载
·RAD STUDIO XE2 试用版官网下载
·XE2发布!大富翁论坛却挂了?
·RAD Studio XE2 –mac开发图解
·Delphi XE2 新技术说明 (What's new in Delphi XE2)
·【Delphi XE2 firemonkey】如何切换皮肤?
 → 特别推荐
 → 热点TOP10
关于我们 | 广告服务 | 发布资源 | 联系站长 Copyright © 2001-2009 Delphi园地 All Rights Reserved