各位大哥大姐帮个忙: 
  Delphi 的 TreeView 按层遍历怎么写
  比方说我有3层,我有可能是只按第一层循环,也有可能只按第三层循环。  也有可能按第一层循环,找到某节点后再按这一节点的下一层循环(即第二层),在第二层找到某节点后,再按这个节点下层循环(即第三层)..
  各位大哥大姐,请指教,代码该怎么写???????????

解决方案 »

  1.   

    有个Level属性代表哪一层......
      

  2.   

    procedure scannode(p:Ttreenode;n:integer);
    //n是希望遍历的深度
    var
      i:integer;
    begin
      if n<=0 then
        exit;
      if p=nil then
        exit;
      for i:=0 to p.count-1 do
      begin
        //对本节点做处理
        scannode(p.item[i],n-1);
      end;
    end;
      

  3.   


    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Self.Text := TreeView1.Items.Item[i].Text;
      if i < TreeView1.Items.Count-1 then Inc(i) else i := 0;  TreeView1.SetFocus;
      TreeView1.Select(TreeView1.Items.Item[i]);
    end;万老师的例子
      

  4.   

    for i:=0 to TreeView1.Items.Count-1 do
    begin
      ...end;