摘要:
Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件表达式中的函数有限, 譬如我想通过绑定输出文本的长度(譬如在 Label1 中绑定输出 Edit1.Text 的长度)就没有相应的函数;这可在 TBindExpression 的 OnAssigningValue 事件中处理.TBindExpression 和它的兄弟们 (TBindExprItems、TBindLink、TBindListLink、TBindGridLink、TBindPosition、TBind 阅读全文
摘要:
Delphi XE2 之 FireMonkey 入门(29) - 数据绑定: TBindingsList: 表达式的 Evaluate() 方法TBindingsList 中可能不止一个表达式, 通过表达式的 Evaluate 方法可单独提交绑定, 并可在 Active = False 时提交.在 TBindExprItems 中对应的方法是 EvaluateFormat.测试设想: Label1、Label2 的绑定源同是 Edit1, 分别提交绑定.1、在窗体上加控件: Label1、Label2、Edit1、BindingsList1;2、激活 Edit1 的 OnKeyUp、OnCha 阅读全文
摘要:
Delphi XE2 之 FireMonkey 入门(28) - 数据绑定: TBindingsList: 表达式函数测试: SelectedText()、CheckedState()示例构想: 用 Label1 显示 ListBox1 的选项, 用 Label2 显示 CheckBox1 的状态.1、放控件: Label1、Label2、ListBox1、CheckBox1、BindingsList1、BindScope1;2、激活 ListBox1 的 OnClick 事件和窗体的默认事件.unit Unit1;interfaceuses System.SysUtils, System.T 阅读全文
摘要:
Delphi XE2 之 FireMonkey 入门(27) - 数据绑定: TBindingsList: TBindScope如果在编写表达式时, 如果能够随意指认需要的控件就好了(通过 Owner 也可以勉强做到), TBindScope 就是解决这个问题的.示例设想: 把三个 TEdit 的 Text 绑定到一个 TLabel.在窗体上添加 Label1、Edit1、Edit2、Edit3、BindingsList1、BindScope1; 激活 Edit1 和窗体的默认事件.unit Unit1;interfaceuses System.SysUtils, System.Types, 阅读全文
摘要:
Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems如果要给一对 "源控件" 和 "目标控件" 写多个表达式, 使用 TBindExpression 就不如 TBindExprItems 了.TBindExprItems 中的表达式又分两组: FormatExpressions、ClearExpressions, 后者是在断开绑定时的表达式.示例设想:1、TrackBar1 为源, 把其 Value 值绑定给 Edit1.Text 和 Edit1.Width 和 Labe 阅读全文
摘要:
Delphi XE2 之 FireMonkey 入门(25) - 数据绑定: TBindingsList: 表达式的灵活性及表达式函数绑定表达式中可以有简单的运算和字符串连接, 但字符串需放在双引号中.还可以使用 TBindingsList.Methods 提供的一组表达式函数(分别来自 System.Bindings.Methods 和 Data.Bind.EngExt 单元):ToStr()ToVariant()Round()Format()UpperCase()LowerCase()FormatDateTime()StrToDateTime()Max()Min()CheckedState 阅读全文
摘要:
在学习 BindingSource 属性时, 可以让两个控件互为绑定源; TBindExpression 对应的功能是 Direction 属性.先在窗体上添加 Edit1、Edit2、BindingsList1; 然后激活 Edit1、Edit2 和窗体的默认事件.procedure TForm1.FormCreate(Sender: TObject);begin with TBindExpression.Create(BindingsList1) do begin ControlComponent := Edit2; ControlExpression := 'Text'; 阅读全文
摘要:
准备用 TBindingsList 重做上一个例子.可以先把 TBindingsList 理解为是一组绑定表达式(TBindExpression)的集合;官方应该是提倡在设计时完成 TBindExpression 的建立与参数设置, 但我觉得看运行时的代码会更容易理解.1、先在窗体上添加 TrackBar1、Edit1、Label1、BindingsList1;2、激活窗体和 TrackBar1 的默认事件;3、然后将通过代码把 TrackBar1.Value 分别绑定到 Edit1.Text、Label1.Text, (这里把 TrackBar1 做源控件, 把 Edit1、Label1 做 阅读全文
摘要:
在窗体上添加 TrackBar1、Edit1、Label1, 然后设置属性(可在设计时):procedure TForm1.FormCreate(Sender: TObject);begin Edit1.BindingSource := TrackBar1; //将 TrackBar1 的值绑定在 Edit1 Label1.BindingSource := TrackBar1; //将 TrackBar1 的值绑定在 Label1end;{之后, Edit1.Text 和 Label1.Text 会同步 TrackBar1.Value 值}不同类型值的沟通, 我想应该是依赖于 FM 组件新增的 阅读全文
摘要:
TObjectTPersistentTComponentIInterface,IInterfaceComponentReferenceTBasicActionTControlActionLinkTApplicationTBindNavigatorControllerTPlatformTPlatformCocoaTScreenTFmxObject参见 TFmxObject 的子类们(表) TBasicBindComponent-> TContainedBindComponent-> -> TBaseBindDBControlLinkTBaseBindDBFieldLinkTBa 阅读全文