自己写一个算了.
下面的一段代码可以提供一些思路,不过在有记录滚动时还有问题.
procedure TForm1.DBGrid1MouseMove(Sender: TObject
Shift: TShiftState
X,
Y: Integer);
var
Coord : TGridCoord;
begin
if adoconnection1.connected and adotable1.active then
begin
Coord := (DBGrid1 as TCustomGrid).mouseCoord(X, Y);
if Coord.y >0 then
DataSource1.DataSet.RecNo := Coord.y;
end;
end;