0

我正在创建自己的从 TMSFMXGrid 派生的 DBGrid。如果使用 Live Bindings 链接,我如何找出链接到该网格的数据集?在设计时,您可以在对象检查器属性 LiveBinding 中看到,但在运行时无法访问。否则我将不得不发布我自己的属性,您可以在其中定义使用的数据集。

4

1 回答 1

0

经过几个小时的搜索,我找到了这个解决方案。

function GetDataSet: TDataSet;
var
  obj: TColumnDescObject;
  dts: TBaseLinkingBindSource;
  ds: TDataSet;
begin
  Result := nil;
  if ColumnDescList.Count > 0 then
  begin
    obj := TColumnDescObject(ColumnDescList.Items[0]);
    if Assigned(obj) then
    begin
      dts := obj.ColumnDesc.DataSource;
      if Assigned(dts) then
      begin
        if dts is TCustomBindSourceDB then
        begin
          ds := (dts as TCustomBindSourceDB).DataSet;
          if Assigned(ds) then
          begin
            Result := ds;
          end;
        end;
      end;
    end;
  end;
end;
于 2013-04-04T14:25:16.413 回答