Как получить доступ к набору данных из пользовательского компонента, связанного с привязками Live?
Я создаю свой собственный DBGrid, который является производным от TMSFMXGrid. Как я могу узнать, какой набор данных связан с этой сеткой, если он связан с использованием Live Bindings? Во время разработки вы можете видеть в инспекторе объектов свойство LiveBinding, но оно недоступно во время выполнения. В противном случае мне придется опубликовать свое собственное свойство, где вы можете определить используемый набор данных.
1 ответ
Решение
После многих часов поисков я нашел это решение.
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;