为什么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) - 数据绑定: 绑定数据库相关推荐

  1. Delphi XE2 之 FireMonkey 入门(23) - 数据绑定: TBindingsList: TBindExpression

    准备用 TBindingsList 重做上一个例子. 可以先把 TBindingsList 理解为是一组绑定表达式(TBindExpression)的集合; 官方应该是提倡在设计时完成 TBindEx ...

  2. Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件...

    为什么80%的码农都做不了架构师?>>>    表达式中的函数有限, 譬如我想通过绑定输出文本的长度(譬如在 Label1 中绑定输出 Edit1.Text 的长度)就没有相应的函数 ...

  3. Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems

    如果要给一对 "源控件" 和 "目标控件" 写多个表达式, 使用 TBindExpression 就不如 TBindExprItems 了. TBindExpr ...

  4. Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它

    Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它 TFmxObject 增加了 TagObject.TagFloat.TagString, 算 ...

  5. Delphi XE2 之 FireMonkey 入门(1)

    Delphi XE2 的 FireMonkey 是跨平台的, 暂时只准备看看它在 Windows 下(我是 32 位 Win7)的应用情况. 很新的东西, 相信有了它, 以后的界面将会更灵活.漂亮, ...

  6. Delphi XE2 之 FireMonkey 入门(17) - 特效

    刚打开 XE2 时, 就从 Tool Palette 窗口的 Effects 组中发现洋洋洒洒的六十多个特效... 每个特效分别对应一个类, 分别来自 FMX.Effects 和 FMX.Filter ...

  7. Delphi XE2 之 FireMonkey 入门(2)

    FireMonkey 的控件都是自己绘制的(而不是基于系统组件), 我想它们应该是基于一些基本图形; 就从基本图形开始吧. FMX.Objects 单元给出的类: TShape //基本图形的基类 T ...

  8. Delphi XE2 之 FireMonkey 入门(20) - TStyleBook(皮肤、样式相关)

    我觉得叫 "皮肤" 不如叫 "样式" 或 "风格", 因为它可以包含和动作关联的动画. 在 FMX 下, 控件可以任意绘制, 各部件个性化的 ...

  9. Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox

    TScrollBox -> TCustomListBox -> TListBox; 其元素项是 TListBoxItem 类型. TListBox 的功能在 TCustomListBox ...

最新文章

  1. Transferring GANs: generating images from limited data 论文学习
  2. 【java开发系列】—— struts2简单入门示例
  3. 让英文版windows 8支持非Unicode程序的语言方法
  4. python中二维数组的建立,输入和输出
  5. node --- 连接mysql(docker环境) Sequelize库
  6. 如何优雅地替换一个实现
  7. c++中的异常--1(基本概念, c语言中处理异常,c++中处理异常,异常的基本使用,栈解旋)
  8. eclipse检测不到android的手机
  9. SQLSERVER对加密的存储过程、视图、触发器进行解密
  10. 数据库——关系数据理论学习笔记
  11. codeforces629C Famil Door and Brackets (dp)
  12. KingDZ 变菜鸟,每日一个C#小实例之---玩转鼠标
  13. 深入浅出的mysql第三版和第二版的区别_深入浅出mysql和高性能mysql哪本好
  14. 双击计算机文档,电脑双击文件都是打开属性窗口怎么办
  15. 服务器虚拟资源池,大型医院基于Hyper-V的虚拟化服务器资源池构建
  16. vs怎么配置c语言codemac,在Mac上使用vs-code快速上手c语言学习(入门文,老鸟退散)...
  17. Java实现生成和解析二维码
  18. 什么是 Adobe AIR
  19. 应届毕业生不想应聘上班,一心想独自创业,有什么好的项目推荐?
  20. Ubuntu20.04部署微软counterfit AI系统安全测评工具实战

热门文章

  1. 【NX二次开发】单位化向量
  2. vivo y67刷回原来的系统
  3. 用java代码实现查询数据库
  4. 带进度条的x5WebView
  5. Fira Code字体中增加思源黑体支持中文字体
  6. 计算机信息技术管理试题及答案,计算机软考信息技术处理员模拟试题及答案(3)[4]...
  7. 南京师范大学地信(GIS)考研复试经验帖
  8. 四个技巧提升你的网站百度收录量
  9. Java大厂面试题大全(整理版)1000+面试题附答案详解
  10. 【Unity小工具】一键制作艺术字,超简洁操作,策划与美术的福音!