不要用for循环,因为你要删除节点,很可能造成出错,用while循环

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
    begin
      for I := TreeView1.Items.Count - 1 downto 0 do
        if TreeView1.Items[I].Level = 2 then
          TreeView1.Items[I].Delete;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
    begin
      i;=0;
      while i<=TreeView1.Items.Count - 1  do
        if TreeView1.Items[i].Level = 2 then
          TreeView1.Items[i].Delete;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
    begin
      for I := TreeView1.Items.Count - 1 downto 0 do
        if TreeView1.Items[I].Level = 2 then
          TreeView1.Items[I].Delete;
    end;
    用for ... downto... 不要用for ...to... ,容易出错!