如题

解决方案 »

  1.   

    ...
      tvFir: TTreeView;
    ...
    var
      i: Integer;
    ...
    procedure TfrmHints.FormShow(Sender: TObject);
    var
      iData: PInteger;
      i: Integer;
    begin
      tvFir.Items.GetFirstNode.Expand(false);
      for i := 0 to tvFir.Items.Count - 1 do
      begin
        New(iData);
        iData^ := i;
        tvFir.Items[i].Data := iData;
      end;
    end;procedure TfrmHints.tvFirMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    var
      sNode: TTreeNode;
    begin
      tvFir.Hint := '';  
      sNode := tvFir.GetNodeAt(X, Y);
      if sNode <> nil then
      begin
        if i <> sNode.AbsoluteIndex then
        begin
          i := sNode.AbsoluteIndex;
          Application.Activatehint(Point(X, Y));
        end;
        tvFir.Hint := sNode.Text +' ' + IntToStr(PInteger(sNode.Data)^);
      end;
    end;