Delphi XE2 之 FireMonkey 入门(31) - 数据绑定: 绑定数据库
为什么80%的码农都做不了架构师?>>>
一、全设计时操作:
先在窗体上放置控件:
DataSource1 : TDataSource;
ClientDataSet1 : TClientDataSet;
Label1 : TLabel;
Edit1 : TEdit;
Memo1 : TMemo;
ImageControl1 : TImageControl;
BindNavigator1 : TBindNavigator;{在连接过程中, 会自动添加下面部件}
BindingsList1 : TBindingsList;
BindScopeDB1 : TBindScopeDB;DBLinkLabel1SpeciesNo1 : TBindDBTextLink;
DBLinkEdit1Category1 : TBindDBEditLink;
DBLinkMemo1Notes1 : TBindDBMemoLink;
DBLinkImageControl1Graphic1 : TBindDBImageLink;
测试使用官方提供的测试数据 biolife.xml(或 biolife.cds), 其路径通常是: C:\Program Files\Common Files\CodeGear Shared\Data\biolife.xml
连接步骤:
1、置 DataSource1 的 DataSet 属性为 ClientDataSet1;2、置 ClientDataSet 的 FileName 属性为 'C:\Program Files\Common Files\CodeGear Shared\Data\biolife.xml';3、将四个控件分别关联到 biolife.xml 中的字段:Label1 -> 右键 -> Link To DB Field... -> 选择 Species No (数字)Edit1 -> 右键 -> Link To DB Field... -> 选择 CateGory (string)Memo1 -> 右键 -> Link To DB Field... -> 选择 Notes (Text)ImageControl -> 右键 -> Link To DB Field... -> 选择 Graphic (Graphics)4、置 BindNavigator1 的 BindScope 属性为 BindScopeDB1;5、置 ClientDataSet1 的 Active 属性为 True.
二、运行时连接:
先在窗体上放置控件(其它在运行时完成):
DataSource1 : TDataSource;
ClientDataSet1 : TClientDataSet;
Label1 : TLabel;
Edit1 : TEdit;
Memo1 : TMemo;
ImageControl1 : TImageControl;
BindNavigator1 : TBindNavigator;
BindingsList1 : TBindingsList;
BindScopeDB1 : TBindScopeDB;
与设计时功能相同的代码:
procedure TForm1.FormCreate(Sender: TObject);
beginClientDataSet1.FileName := 'C:\Program Files\Common Files\CodeGear Shared\Data\biolife.xml';DataSource1.DataSet := ClientDataSet1;BindScopeDB1.DataSource := DataSource1;BindNavigator1.BindScope := BindScopeDB1;with TBindDBTextLink.Create(BindingsList1) dobeginControlComponent := Label1;DataSource := BindScopeDB1;FieldName := 'Species No';end;with TBindDBEditLink.Create(BindingsList1) dobeginControlComponent := Edit1;DataSource := BindScopeDB1;FieldName := 'Category';end;with TBindDBMemoLink.Create(BindingsList1) dobeginControlComponent := Memo1;DataSource := BindScopeDB1;FieldName := 'Notes';end;with TBindDBImageLink.Create(BindingsList1) dobeginControlComponent := ImageControl1;DataSource := BindScopeDB1;FieldName := 'Graphic';end;ClientDataSet1.Active := True;
end;
要绑定到 TStringGrid, 在设计时(在上面的基础上)只需: StringGrid1 -> Link to DB DataSource... -> BindScopeDB1
下面是运行时绑定到 TStringGrid 的代码:
uses Fmx.Bind.Editors, Data.Bind.DBLinks, Fmx.Bind.DBLinks;procedure TForm1.FormCreate(Sender: TObject);
beginClientDataSet1.FileName := 'C:\Program Files\Common Files\CodeGear Shared\Data\biolife.xml';DataSource1.DataSet := ClientDataSet1;BindScopeDB1.DataSource := DataSource1;BindNavigator1.BindScope := BindScopeDB1;ClientDataSet1.Active := True;with TBindDBGridLink.Create(BindingsList1) do //还可用 TBindGridLinkbeginGridControl := StringGrid1;DataSource := BindScopeDB1;Active := True;end;
end;
转载于:https://my.oschina.net/hermer/blog/319742
Delphi XE2 之 FireMonkey 入门(31) - 数据绑定: 绑定数据库相关推荐
- Delphi XE2 之 FireMonkey 入门(23) - 数据绑定: TBindingsList: TBindExpression
准备用 TBindingsList 重做上一个例子. 可以先把 TBindingsList 理解为是一组绑定表达式(TBindExpression)的集合; 官方应该是提倡在设计时完成 TBindEx ...
- Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件...
为什么80%的码农都做不了架构师?>>> 表达式中的函数有限, 譬如我想通过绑定输出文本的长度(譬如在 Label1 中绑定输出 Edit1.Text 的长度)就没有相应的函数 ...
- Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems
如果要给一对 "源控件" 和 "目标控件" 写多个表达式, 使用 TBindExpression 就不如 TBindExprItems 了. TBindExpr ...
- Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它
Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它 TFmxObject 增加了 TagObject.TagFloat.TagString, 算 ...
- Delphi XE2 之 FireMonkey 入门(1)
Delphi XE2 的 FireMonkey 是跨平台的, 暂时只准备看看它在 Windows 下(我是 32 位 Win7)的应用情况. 很新的东西, 相信有了它, 以后的界面将会更灵活.漂亮, ...
- Delphi XE2 之 FireMonkey 入门(17) - 特效
刚打开 XE2 时, 就从 Tool Palette 窗口的 Effects 组中发现洋洋洒洒的六十多个特效... 每个特效分别对应一个类, 分别来自 FMX.Effects 和 FMX.Filter ...
- Delphi XE2 之 FireMonkey 入门(2)
FireMonkey 的控件都是自己绘制的(而不是基于系统组件), 我想它们应该是基于一些基本图形; 就从基本图形开始吧. FMX.Objects 单元给出的类: TShape //基本图形的基类 T ...
- Delphi XE2 之 FireMonkey 入门(20) - TStyleBook(皮肤、样式相关)
我觉得叫 "皮肤" 不如叫 "样式" 或 "风格", 因为它可以包含和动作关联的动画. 在 FMX 下, 控件可以任意绘制, 各部件个性化的 ...
- Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox
TScrollBox -> TCustomListBox -> TListBox; 其元素项是 TListBoxItem 类型. TListBox 的功能在 TCustomListBox ...
最新文章
- Transferring GANs: generating images from limited data 论文学习
- 【java开发系列】—— struts2简单入门示例
- 让英文版windows 8支持非Unicode程序的语言方法
- python中二维数组的建立,输入和输出
- node --- 连接mysql(docker环境) Sequelize库
- 如何优雅地替换一个实现
- c++中的异常--1(基本概念, c语言中处理异常,c++中处理异常,异常的基本使用,栈解旋)
- eclipse检测不到android的手机
- SQLSERVER对加密的存储过程、视图、触发器进行解密
- 数据库——关系数据理论学习笔记
- codeforces629C Famil Door and Brackets (dp)
- KingDZ 变菜鸟,每日一个C#小实例之---玩转鼠标
- 深入浅出的mysql第三版和第二版的区别_深入浅出mysql和高性能mysql哪本好
- 双击计算机文档,电脑双击文件都是打开属性窗口怎么办
- 服务器虚拟资源池,大型医院基于Hyper-V的虚拟化服务器资源池构建
- vs怎么配置c语言codemac,在Mac上使用vs-code快速上手c语言学习(入门文,老鸟退散)...
- Java实现生成和解析二维码
- 什么是 Adobe AIR
- 应届毕业生不想应聘上班,一心想独自创业,有什么好的项目推荐?
- Ubuntu20.04部署微软counterfit AI系统安全测评工具实战