3.我个人认为: 不通过dataset没法实现
function GetGridCell(x,y: integer): string;
var
p: pointer;
begin
with dbgrid1.DataSource.DataSet do
begin
p:=GetBookmark;
First;
if MoveBy<>y then
result:=''
else
result:=Fields[x].asstring;
GotoBookmark(p);
FreeBookmark(p);
end;
end;