procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
{$J+}
const
  OldItem: TTreeNode = nil;
{$J-}
var
  AnItem: TTreeNode;
begin
  AnItem := TTreeView(Sender).GetNodeAt(X, Y);
  if Assigned(AnItem) and (AnItem <> OldItem) then begin
    TTreeView(Sender).Hint := AnItem.Text;
    Application.ActivateHint(Mouse.CursorPos);
    OldItem := AnItem;
  end;
end;