Delphi livebinding TClientDataSet TStringGrid运行时

时间:2013-09-23 15:04:47

标签: delphi runtime tclientdataset tstringlist delphi-xe5

Firemonkey(XE5)中的

我用TStringGrid创建了一个Frame,想要添加一个 “procedure ShowData(aClientSet:TClientSet);” 在那个pprocedure中,Clientset的行应该只用LiveBindings(TBindSourceDB?)显示,而不知道数据集和WITHOUT DESIGNER的其他内容? 请问,如何在运行时完成? 以及如何控制Grid重新填充,如果数据集关闭并在Frame外重新打开(在哪里触发TBindings.notify)? THX。

1 个答案:

答案 0 :(得分:0)

以下对我有用:

  1. 包含Data.Bind.EngExt,Fmx.Bind.DBEngExt,Fmx.Bind.Grid, System.Bindings.Outputs,Fmx.Bind.Editors,Data.Bind.Components, 您的uses子句中的Data.Bind.Grid和Data.Bind.DBScope。
  2. 假设您的TStringGrid名为grid1,而您的数据集名为qry1:

    变种
      bds:TBindSourceDB;
      bdl:TBindingsList;
      gtd:TLinkGridToDataSource;
    开始
      bds:= TBindSourceDB.Create(Self);
      bdl:= TBindingsList.Create(Self);
      gtd:= TLinkGridToDataSource.Create(bdl);

    gtd.DataSource:= bds;
      gtd.GridControl:= Grid1;

    bds.DataSet:= qry1;
    端;

  3. 希望这有帮助! (我使用TFDQuery作为我的数据集,但我确信任何TDataset后代都应该正常工作。)