Bueno mientras alguien me da otra idea voy resolviendo con esta por si la ven correcta
es una funcion que busca por el Formulario el componente TLinkGridToDataSource y dentro de este componente
esta el nombre del grid con esto se que TLinkGridToDataSource tiene el Grid y dentro
esta un TBindSourceDB que tiene a que dataset esta asociado .
reslueto el problema, en lugar de buscar partiendo de un Tgrid el dataset, hago lo contrario busco que
TLinkGridToDataSource tiene dentro el Tgrid que quiero y cuando lo encuentro se que Dataset es.
Con esta
Código Delphi
[-]
function Tform1.GetDataSet(GridName: string): TDataset;
var
i, j: Integer;
begin
result := nil;
for i := 0 to ComponentCount - 1 do
for j := 0 to ChildrenCount - 1 do
if Components[i] is TLinkGridToDataSource then
if GridName = TGrid((Components[i] as TLinkGridToDataSource).GridControl).Name then
result := TBindSourceDB((Components[i] as TLinkGridToDataSource).DataSource).DataSet;
end;