0

在 Firemonkey (XE5) 中,我创建了一个带有 TStringGrid 的框架,并希望添加一个“程序 ShowData(aClientSet:TClientSet);” 在该程序中,Clientset 的行应使用 LiveBindings(TBindSourceDB ?)以只读方式显示,而无需了解数据集的任何其他内容并且没有 DESIGNER?请问,这怎么能在运行时完成?以及如何控制重新填充网格,如果数据集在框架之外关闭并重新打开(在哪里触发 TBindings.notify)?谢谢。

4

1 回答 1

1

以下对我有用:

  1. 在您的使用子句。
  2. 假设您的 TStringGrid 名为 grid1 并且您的数据集名为 qry1 :

    var
      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;
    结尾;

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

于 2014-01-24T06:42:35.657 回答