Вот что работает
Код:
procedure TfMain.cxGrid1DBTableView1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
AHitTest: TcxCustomGridHitTest;
AHint: string;
AColumn: TcxGridColumn;
aPos: TPoint;
begin
if not Assigned(Sender) then
begin
cxHintStyleController1.HideHint;
exit;
end;
if not (Sender is TcxGridSite) then
begin
cxHintStyleController1.HideHint;
exit;
end;
//determine the current mouse position
AHitTest := TcxGridSite(Sender).ViewInfo.GetHitTest(X, Y);
//hide displayed hint if mouse is not over a grid header
if AHitTest.HitTestCode <> htColumnHeader then
begin
cxHintStyleController1.HideHint;
Exit;
end;
if AHitTest.HitTestCode = htColumnHeader then
with TcxGridColumnHeaderHitTest(AHitTest) do
begin
{check the current column over which the mouse is placed}
AColumn := Column;
AHint := TcxGridDBColumn(AColumn).Caption;
aPos := TcxGridSite(Sender).ClientToScreen(Point(X, Y + 20));
if AHint <> '' then
cxHintStyleController1.ShowHint(aPos.X, aPos.Y, AHint, '')
else
cxHintStyleController1.HideHint;
end;
end;
Компоненты DevExpress: cxGrid и cxHintStyleController.