Hola rgstuamigo.
Está muy bien pensado, posiciona perfectamente.
Yo lo busque por el lado del TCustomDBGrid por que me permite posicionar y tambien obtener el campo de dicha posición.
Por ejemplo:
Código Delphi
[-]
function TForm1.DBGridColFil(ACol, AFil: integer; GE: TDBGridExt): TField;
begin
Result:= nil;
GE.DataSource.DataSet.MoveBy(1 - GE.Row);
if (AFil > 0)and(ACol > 0)and(AFil < GE.RowCount)and(ACol < GE.ColCount) then
begin
GE.DataSource.DataSet.MoveBy(Afil-1);
GE.Refresh;
GE.FocusCell(ACol,AFil,True);
GE.SetFocus;
Result:= GE.SelectedField;
end
else
raise Exception.Create('Selección fuera de rango');
end;
...
begin
Caption:= DBGridColFil(4, 3,TDBGridExt(DBGrid1)).AsString;
...
No sé si se puede obtener el campo trabajándolo como TStringGrid...

, pero será cosa de buscarle la vuelta...
Saludos.
