delphi中当treeview选中一个节点时如何遍历这个节点下的所有一级节点

解决方案 »

  1.   

    procedure getNode(tn:TTreeNode);
    var
      i:integer;
    begin
      for i:=0 to tn.Count-1 do
      begin
        Form1.Memo1.Lines.Add(tn.Item[i].Text);
        if tn.Item[i].HasChildren then
           getNode(tn.Item[i]);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Memo1.Lines.Clear;
      getNode(TreeView1.Items[StrToInt(Edit1.Text)]); //Edit1输入节点
    end;
      

  2.   

    procedure getNode(tn:TTreeNode; Level:integer);
    var
      i:integer;
    begin
      if (tn=nil) or (Level<0) then exit;//防止参数不正确
      for i:=0 to tn.Count-1 do
      begin
        Form1.Memo1.Lines.Add(tn.Item[i].Text);
        if tn.Item[i].HasChildren and (Level>0) then//KAIKAI哥原来在此没作层数判断,将历遍所有层的子节点
           getNode(tn.Item[i],Level-1);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Memo1.Lines.Clear;
      getNode(TreeView1.Items[StrToInt(Edit1.Text)],1); //Edit1输入节点及需要历遍的子层数
    end;
      

  3.   

    http://www.itdelphi.com/delphibbs/doc/2003/1565343.htm
    百度上一坨一坨的都有呢。。
      

  4.   

    递归吧,因为treeview是树结构