?怎么让鼠标在DBGrid内部不同列移动时,显示当前单元格Hint值?

???如何让鼠标在DBGrid内部不同列移动时,显示当前单元格Hint值???
表T1,列name、age、sex,ADOQuery1
假如鼠标移动到第二行的age列,在DBGrid1的Hint中显示28即可,如移动第一行,显示27即可,是移动,
要在DBGrid不同列中连续移动。
name age sex
11 27 男
22 28 女

Delphi(Pascal) code

type
 TMyGrid = Class(TCustomDBGrid);

procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  row, col : integer;
  rec : integer;
begin
  inherited;

  TDBGrid(Sender).MouseToCell(X, Y, col, row);

  if dgTitles in TDBGrid(Sender).Options then
    Dec(row);
  if dgIndicator in TDBGrid(Sender).Options then
    Dec(col);

  if TMyGrid(TDBGrid(Sender)).DataLink.Active and
     (row >= 0) and (col >= 0) then begin
    rec := TMyGrid(TDBGrid(Sender)).DataLink.ActiveRecord;
    try
      TMyGrid(TDBGrid(Sender)).DataLink.ActiveRecord := row;
      TDBGrid(Sender).Hint := 'Content of field : '+
                              TDBGrid(Sender).Columns[col].Field.AsString;
      Application.ActivateHint(Mouse.CursorPos);
    finally
      TMyGrid(TDBGrid(Sender)).DataLink.ActiveRecord:= rec;
    end;
  end;
end;  


已引入type,及相关单元。运行提示: Undeclared identifier: 'MouseToCell'

------解决方案--------------------
如果是DBGridEh的话就在其DBGridEh1DataHintShow函数里写上
Params.HintStr := Column.Field.AsString就可以了;
或者
Params.HintStr := Sender.DataSource.DataSet.FieldByName('隐藏列名').AsString