var CurNode: TTreeNode;
比如: 我想把Absolute=2~8的节点一个一个取出来,请问怎么给CurNode付值?CurNode:=????

解决方案 »

  1.   

    CurNode := CurNode.getNextSibling
      

  2.   

    CurNode:=treenodes.item[treeview1.items.item[i].absoluteindex].selected;
      

  3.   

    To : cg1120:
    请问这‘TreeNodes’是怎么定义的?呵呵,谢谢
      

  4.   

    var
      CurNode : TTreeNode;
    begin
      CurNoe := CurNode.GetNextSibling;
    ...
    end;
      

  5.   

    不好意思,以上来光顾的大侠们,(都是带星星的,看得俺羡慕的来)俺少写了点点东东,呵呵。
    问题是:如何一个一个的提取:‘AbsoluteIndex’为2~8的节点(里面包括多层子节点)???顺便问一下,有什么好方法能得到被选中的节点的所有子节点?个数也行。分不够,再加,呵呵谢谢大家。
      

  6.   

    告诉你一个方法,要得到2-8的节点及以下的节点可以这样做:
    1.在NODE的DATA里保存数字信息
    2.遍历当前层,从NODE的DATA里得到数字。
    3.对2-8的NODE进递归遍历
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      for i:=0 to treeview1.Items.Count-1 do
        begin
          listbox1.Items.Add(treeview1.Items.Item[i].Text+':'+inttostr(treeview1.Items.Item[i].AbsoluteIndex));
        end;
    end;这样你就什么都明白了
      

  8.   

    哦,你改题目了,不好意思
    那就接着看吧
    function TFAgent.getsubnodetext(tree:ttreeview):string;
    var
      CurItem: TTreeNode;
      str:string;   //tstringlist;
      level:integer;
    begin
      str:='';    //tstringlist.Create;
      CurItem:=Tree.Selected;
      level:=-2;
      if curitem<>nil then
         begin
         level:=curitem.Level;
         str:=str+''''+curitem.Text+'''';
         end;
      if curitem.Count<>0 then
         begin
         curitem:=curitem.GetNext;
         while ((curitem.Index<>treeview1.Items.Count) and (curitem.Level<>level))do
           begin
           str:=str+','''+curitem.Text+'''';     //str.Add(curitem.Text)
           curitem:= curitem.GetNext;
           if curitem=nil then
              break;
           end;
         end;
    getsubnodetext:=str;
    end;这里根据你自己的需要改一下,我只是把我的原封不动的给你了