找回密码
 立即注册
首页 业界区 业界 一步一步学习使用LiveBindings(1) 使用向导无代码创建 ...

一步一步学习使用LiveBindings(1) 使用向导无代码创建基于绑定的FireMonkey应用程序

任俊慧 2025-9-26 11:52:08
这将是一个系列的文章,主要通过实际操作的模式一步一步来揭开LiveBindings的面纱。
在VCL框架中,传统的数据绑定模式是这样的:用 TDataSource 组件连接数据集和数据显示控件。数据显示控件(一般以TDB开头的控件)能自动同步数据变化,能处理用户操作,使得数据修改和更新更简单而且直观。
在FireMonkey中,传统的数据绑定控件与非数据绑定控件已经不再明显区分,FMX提供了一种称为LiveBindings的技术,简而言之是什么都可以用来绑定。
通过一个例子初步领略一下:
1. 单击主菜单中的 File > New > Multi-Device Application - Delphi > Blank Application ,创建一个新的多设备应用程序。
建议立即单击工具栏上的Save All按钮,将单元文件保存为uMainForm.pas,将项目保存为LiveBinding_Wizard.dproj。
你的项目结构应该像这样:
1.png

2. 在工具面板[Palette]中,通过搜索找到TFDMemTable组件,双击工具TFDMemTable图标添加到主窗体。
2.png

右击单击窗体上的FDMemTable1组件,从弹出的菜单中选择“Load From File...”菜单项,选择Delphi自带的一个名为biolife.FDS的示例数据文件,在笔者的电脑位于如下的位置:
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Samples\Data
建议将biolife.FDS复制到另外一个位置,比如c:\temp\biolife.FDS,然后将此文件加载到TFDMemTable中,避免误改原来的初始数据。
接下来在属性面板,将“Active”属性设置为True。
3. 再次在FDMemTable1组件上单击鼠标,选择“Fields Editor...”菜单项,在弹出的“Fields Editor”中,右击鼠标,选择“Add All Fields”,这样成功的加载了内存表中所有的字段。
3.png

4. 接下来在窗体上放置一个TLabel控件,一个TEdit、TMemo、TImageControl控件以及一个TBindNavigator控件,按如下图的方式简单的排列。
4.png

5.在窗体的空白位置右击鼠标,选择“Bind Visually”菜单项,Delphi将打开LiveBindings Designer,将这个面板拉大一些,然后单击最左侧工具栏面板最下面的一个图标,打开 LiveBindings Wizard向导。
5.png

6.在向导的第1个窗体上,选择“Link a component property with a field.”项,单击“下一步”按钮。
6.png

注意:当选择不同的Link项时,左侧的导般面板会发生一些向导步骤的变化。
7. 在接下来的向导窗口,指定Component为Label1,Property为Text,单击“下一步”按钮。
7.png

8. 在Data Source页面,选择第3步添加的FDMemTable1组件。
8.png

9. 在Field Name页面,选择“Species Name”字段名,单击“下一步”按钮。
9.png

10. 在下一个页面保持默认,单击“完成”按钮,则TLable控件的绑定完成。
这时候,会发现Delphi自动向窗体添加了一个名为BindingsList1的TBindingsList控件和一个名为BindSourceDB1的TBindSourceDB控件。
10.png

并且在LiveBindings Designer中,FDMemTable1现在被BindSourceDB1包围,有一个指向Label1的单向链接。
11.png

在窗体上单击BindSourceDB1控件,在属性编辑器中可以看到它类似于传统的TDataSource控件,有一个DataSet属性已经指向了FDMemTable1控件。
12.png

11. 按照步骤6-10所示的向导步骤,完成如下的绑定:

  • 绑定Edit1组件的Text属性到FDMemTable1的Category字段。
  • 绑定Memo1组件的Text属性到FDMemTable1的Notes字段。
  • 绑定ImageContrl1组件的Bitmap属性到FDMemTable1的Graphic字段。
  • 将BindNavigator1组件的DataSource属性指向BindSource1组件。
    注意:在操作向导的过程中,可以发现已经进行过绑定的字段,会显示一个链条形的图标。
    13.png

12. 万事皆备,只欠一Run了,按下F9,或者是主菜单的“Run > Run”,可以看到带绑定功能的窗口已经成功出现。
假如您的窗体没有数据,请重新为FDMemTable1控件从文件中加载一次数据,应该就能看到绑定的效果
在这个窗口中,您可以通过BindNavigator进行上一条,下一条导航,由于所有的绑定是单向的,因此暂时无法更新数据回到数据源,在后续的篇幅中会介绍如何实现双向数据绑定。
14.png

回到LiveBindings Designer,可以看到Delphi自动为我们添加了各种链接线,单击每一条链接线,在属性编辑器上可以看到这些链接的详细信息。而且在结构面板,也可以看到每个有进行过绑定的控件下面,显示了LiveBindings结点。
15.png

LiveBindings的核心在TBindingList组件中,双击BindingList1组件,Delphi会弹出编辑绑定的窗口,单击工具栏上的第一个按钮,可以直接新建绑定,或者重新打开"LiveBindings Wizard..."窗口。
16.png

在接下来的文章中,我将详细介绍一些LiveBinding的概念性的东西,有兴趣的朋友可以关注。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册