mira, llegué a la solución que muestro ...
Código Delphi
[-]
en la forma FPedidos:
procedure TFPedidos.Button1Click(Sender: TObject);
var
vSource: TDataSource;
begin
vSource := TDataSource.Create(nil);
vSource := oAgenteCial.Leer(FPrincipal.oConexion.GetConexion);
if not (vSource = nil) then
DBGrid1.DataSource := vSource;
end;
en la clase ...
function TAgenteCial.Leer(AConexion: TADOConnection): TDataSource;
var
vQuery: TADOQuery;
vSource: TDataSource;
begin
Result := nil;
vQuery := TADOQuery.Create(nil);
vSource := TDataSource.Create(nil);
vQuery.Connection := AConexion;
vQuery.SQL.Text := 'SELECT venId, venNombre, venXMLClienteCons FROM GEN_Vendedores ';
try
vQuery.Active := True;
if not vQuery.Eof then
begin
vSource.DataSet := vQuery;
Result := vSource;
end;
finally
end;
end;
El problema es que como lo decías, el componente no hacía nada porque estaba mal asociado, estaba asociando el DataSource al Query y debía asociar el Query al DataSource: vSource.DataSet := vQuery;
El asunto es que queda el temita de la liberación de los objetos vQuery y vSource ...