我的代码如下:procedure TFrm_TopologyAnalyse.AddTre(StrEqId:string;EqIdList,StrEqIdList:Tstrings);
var
  i,n:Integer;
  node:TTreeNode;
  eqname:string;
begin
    for i:=0 to EqIdList.Count-1 do
    begin
       TreeView.Items.AddChild(TreeView.NodeFromPath(StrEqId),EqIdList.Strings[i]); //加一个子节点
       
       eqname:=EqIdList.Strings[i];
       for n:=0 to StrEqIdList.Count-1 do
       begin
           if Copy(eqname,1,4)=Copy(StrEqIdList.Strings[n],6,4) then
           begin
               node:=TreeView.NodeFromPath(eqname);
               TreeView.Items.AddChild(node,StrEqIdList.Strings[n]);//再先前加的那个子节点下再加一个子节点
           end;
       end;
    end;
end;我看过eqname明明已经加 有值,而且已经添加到树里,但NODE怎么还是NIL?!!高手指教一下啊!!!拜托!

解决方案 »

  1.   

    StrEqId:TTreeNode//先获得根Node再调用这个函数应该是没有问题的,怀疑你的nodefrompath是不是有问题procedure AddTre(StrEqId:TTreeNode;EqIdList,StrEqIdList:Tstrings);
    var
      i,n:Integer;
      node:TTreeNode;
      eqname:string;
    begin
        for i:=0 to EqIdList.Count-1 do
        begin
           node:=TreeView.Items.AddChild(StrEqId,EqIdList.Strings[i]); //加一个子节点       
           eqname:=EqIdList.Strings[i];
           for n:=0 to StrEqIdList.Count-1 do
           begin
               if Copy(eqname,1,4)=Copy(StrEqIdList.Strings[n],6,4) then
               begin
                   TreeView.Items.AddChild(node,StrEqIdList.Strings[n]);//再先前加的那个子节点下再加一个子节点
               end;
           end;
        end;
    end;