为什么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. 数据库权限的分配与回收
  2. 【每日DP】day 9、P1156 垃圾陷阱(神奇的背包,时间节点处理)难度⭐⭐⭐
  3. 金融业如何更好地利用大数据实现突破性变革?(实例解读)
  4. 拓普微智能TFT液晶显示模块
  5. 单例销毁_【PHP设计模式】单例模式
  6. 2019日历全年一张_带上这份2019全年活动日历,旅行打卡不迷路
  7. viewpager 自定义翻页效果_轻松打造专业的录音棚效果,连网红用了都说好的唱吧声卡K10套装...
  8. 踩坑之旅:springboot+vue+webpack项目实战(一)
  9. Java之jdk和CGLib实现动态代理
  10. 文件字符串变量插入linux,Linux Shell脚本实现在文件指定的行插入字符串
  11. Python 精简入门级学习(一)
  12. PyTorch 深度学习:37分钟快速入门——FCN 做语义分割
  13. Shell:函数返回值接收
  14. Python+Wind:用 Pyautogui 轻松下载 Wind 数据
  15. java在微信的应用_java版微信公众平台消息接口应用示例
  16. 学成在线官网首页完整版(含psd源文件)
  17. 1978-2021中国统计年鉴、2003-2019(省、市面板数据)、1999-2019(县域面板数据)
  18. 智能功放 ACS 保护
  19. tc7102路由器虚拟服务器,电信华为tc7102路由器怎么设置
  20. 【图像】焦距与景深的关系

热门文章

  1. FishC《零基础学习python》笔记--第007、008讲、009讲:了不起的分支和循环1、2、3
  2. 手机端操作| Auto.js一键解密/一键加密工具免费分享
  3. 史上最全Java面试题:数据结构+算法+JVM+线程+finalize+GC
  4. 打开新世界?从产品经理角度聊聊“高智商”这件事儿
  5. (二)证明数列{(1+1/n)^(n+1)}为递减数列,{(1+1/n)^(n)}为递增数列
  6. 关于Oracle数据库基本知识①——基本操作语句
  7. 互联网行业人才缺口到底有多大?
  8. html中alert弹窗自动消失,模拟alert2秒后自动消失弹出框
  9. Java项目:基于Java药品管理系统(计算机毕业设计)
  10. python 漏洞扫描器_SRCHunter Python开源漏洞扫描器