(DataBinding)第七章 开发第1个实时数据系结应用程序
- Delphi 在XE2开始进入跨平台的开发领城,能够同时使用Delphi程序语言开发 Win32,Win64,MacOs和iOS。
- 由于VCL框架只能使用在Win32和Wi64平台: 因此如果开发人员需要开发跨平台的图形用户接口应用程序,那么必须使用新的FireMonkey框架
- 由于许多的FireMonkey框架的控件都是动态产生的,因此当开发 人员需要结合FireMonkey控件和数据功能时,传统像VCL的数据感知组件的使用方式并不适合使用于FireMonkey 控件,因为 VCL的控件是属于静态控件
因此为了让 FireMonkey控件也能够像VCL的数据感组件提供类似的数据系结能力,Delphi必须提供另外一种 动态绑定数据 的能力以便和FireMonkey控件共同使用在一起。
- 实时数据系结(Live DataBinding) 是Delphi XE2全新推出的数据存取功能,它允许FireMonkey控件使用动态的系结表达式 (BindingExpression) 来系结特定的数据,一旦系结的数据源数据有变化时,FireMonkey控件使用动态的系结表达式可以自动重新 运算并且显示新的运算结果的资料。
- 由于实时数据系结不但能够系结数据库,也能够系结其他的数据源,例如让控件系结到其他的控件,而且能够使用系结表达式来进行运算,因此提供了比VCL数据感知组件更有弹性的能力 。
- 系结表达式以及dbExpress框架之间的关系
- 开发第一个FireMonkey数据库应用程序
请先建立一个FireMonkey桌面应用程序项目,再选择建立【HD FireMonkey Application】 :
开启数据模块从DataExplorer页面中 拖BOOKS数据表到数据模块(DataModal)中,数据模块即会自动产生TSQLConnection和TSQLDataSet组件,接着再于数据模块中放入 TDataSetProvider和TClientDataSet组件:
回到主窗体,点选 File|Use Unit…菜单使用数据模块,接着点选 View |LiveBindingsDesigner 启动可视化实时数据系结设计家,如下所示:
此时可视化实时数据系结精灵会显示如下的对话盒,让您选择希望系结 BOOKNAME字段的控件,
您可以浏览对话盒中出现的控件,现在让我们选择 TEdit 组 件让 BOOKNAME 字段的数值显示在 TEdit 组件中,并且点选 OK:
要改变实体之间箭头的方向,例如如果我们希望BOOKNAME字段的数值在TEdit 组件中只能显示而不能修改,那么开发人员可以在可视化实时数据系结设计家中点选双向 的箭头再于对象查看器中修改它的 Direction特性值,例如如果如下图改变Direction 特性值为TLinkDataToControll,那么TEdit组件中的BOOKNAME域值就是只读的,
主窗体中除了TEdit 组件之外,也会自动产生TBindSourceDB 和 TBindingList 组件。 (225页)
- TBindSourceDB 组件是链接到数据模块中 cdsBooks的组件,它负贵协调和管理数据源之中的数据,
- TBindingList 组件则负贵产生和执行其包含的系结表达式,而开发人员使用可视化实时数据系结设计家自动产生的系结表达式也管理在TBindingList 组件中。
- TGrid组件
加入一个TGrid组件。请点选可视化实时数据系结设计家中 cdsBooks 样例中的【*】字段然后再点选鼠标右键,从突显式选单中选择【TLink to new control 】选项,可视化实时数据系结精灵便会显示如下的对话盒,请双击选择其中的TGrid组件:
- TBindingsList 组件:
事实上在前面我们所有使用可视化实时数据系结设计家进行的系结都会被自动转换为系结表达式储存在此TBindingsList 组件中,如果您双击主窗体中的TBindingsList 组件就会看到如下的编辑器:
- 系结表达式的意义
把 BindSouceDB1(即cdsBooks)中的 BOOKNAME 字段的 Text 数值 系结到主窗体中 EditBookName 这个TEdit组件的Text特性值中