我下了一段代码:
unit TreeFillThrd;interfaceuses
  Classes, ComCtrls, ADODB, SysUtils;type
  TNodeData = record
    Index: integer;
    Caption: string;
  end;
  PNodeData = ^TNodeData;
  TTreeFill = class(TThread)
    TV: TTreeView;
    TableName: string;
    FieldIndex: string;
    FieldPID: string;
    FieldCaption: string;
    RootText: string;
    Conn: TADOConnection;
    Ptr: PNodeData;
    constructor Create(ATreeView: TTreeView; AConn: TADOConnection;
      ATable: string; ARootText: string = '我的目录';
      AFieldIndex: string = 'ID'; AFieldPID: string = 'PID';
      AFieldCaption: string = 'Caption');
      
  private
    procedure AddTree(Node: TTreeNode; PN: PNodeData);
    function getimageindex(node:TTreeNode):Boolean; //这里怎么提示错误了?哪里有问题,怎么改?
    //系统提示:TreeFillThrd.pas(30):Private sysbol'getimageindex' declared but never used' //在哪里没加上uses?
    function getselectindex(node:TTreeNode):Boolean;
  protected
    procedure Execute; override;
  end;implementation
//------------------------------------------------------------------------------
constructor TTreeFill.Create(ATreeView: TTreeView; AConn: TADOConnection;
  ATable: string; ARootText: string = '我的目录';
  AFieldIndex: string = 'ID'; AFieldPID: string = 'PID';
  AFieldCaption: string = 'Caption');
begin
  FieldIndex := AFieldIndex;
  FieldPID := AFieldPID;
  FieldCaption := AFieldCaption;
  TV := ATreeView;
  TableName := ATable;
  RootText := ARootText;
  Conn := AConn;
  New(Ptr);
  inherited Create(False);
end;
//------------------------------------------------------------------------------
procedure TTreeFill.Execute;
var
  Node: TTreeNode;
begin
  FreeOnTerminate := True;
  TV.Items.Clear;
  Ptr^.Index := 0;
  Ptr^.Caption := RootText;
  Node := TV.Items.AddObject(nil, RootText, Ptr);
  Node.ImageIndex := 0;
  Node.SelectedIndex := 0;
  AddTree(Node, Ptr);
  TV.Selected:=TV.Items[0];
  //TV.Items[0].Expand(true);
  //TV.FullExpand;
end;
//------------------------------------------------------------------------------
procedure TTreeFill.AddTree(Node: TTreeNode; PN: PNodeData);
var Query: TADOQuery;
  nNode: TTreeNode;
  PNode: PNodeData;
begin
  try
    Query := TADOQuery.Create(nil);
    Query.Connection := Conn;
    Query.SQL.Text := 'Select * from ' + TableName + ' where ' + FieldPID + ' =' + IntToStr(PN^.Index);
    if Query.Active then
      Query.Close;
    Query.Open;
    while Query.Eof = False do
    begin
      New(PNode);
      PNode^.Caption := Query.FieldByName(FieldCaption).AsString;
      PNode^.Index := Query.FieldByName(FieldIndex).AsInteger;
      nNode := TV.Items.AddChildObject(Node, PNode^.Caption, PNode);
      //getimageindex(nnode);
      //getselectindex(nnode);
      //nNode.ImageIndex := 1;
      //nNode.SelectedIndex := 2;
      AddTree(nNode, PNode);
      Query.Next;
    end;
  finally
    Query.Free;
  end;
end;
//------------------------------------------------------------------------------function TTreeFill.getimageindex(node: TTreeNode): Boolean;
begin
    if not node.IsFirstNode then
    begin
      if node.HasChildren then node.ImageIndex:=1
      else
      begin
        if node.Level>1 then
        begin
          if node.Data<>nil then node.ImageIndex:=1
          else node.ImageIndex:=2;
        end;
      end;
    end;
end;function TTreeFill.getselectindex(node: TTreeNode): Boolean;
begin
   Node.SelectedIndex:=Node.ImageIndex;
end;end.

解决方案 »

  1.   

    这个没事儿,系统提示你getimageindex这个函数创建了,但没有使用,不影响程序运行,删了也行
      

  2.   

    不影响运行。
    如果觉的不好,你可以这样
    1.删除
    2.鼠标移动其上面,同时按ctrl+shift+c,生成函数的实现
      

  3.   

    不是没有实现,只是没有使用('...never used')罢了,没写实现可是要报错的.
      

  4.   

    仅仅是hint,连个warning也不是,对系统运行肯定没影响的只是告诉你这个东西你定义了,但是没有使用过一般放在private中声明的东西,在本类中一定要被调用过,不然就会有LZ那样的提示声明在public中的,不会有这个提示