listbox1的ShowCheck 属性为True
在选择几个相应的 item加入到listBox2 而listbox1选择的几个item要删除
我使用循环来判断Stata是否为cbChecked属性 True时删除 此时发现listbox.items.count也动态的变了 
请问怎么才能解决此问题

解决方案 »

  1.   

    它每删除一个,总数会减一,而当前位置上的ItemINdex将指向下一个
      

  2.   

    作循环的时候要downto 就好了,这个时候就不会出现错误了
      

  3.   

    for I := ListBox1.Items.Coun - 1 downto 0 do
    begin
    ...
    end;
      

  4.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    ListBox1.Items.Insert(0,'项目');
    ListBox1.Items.Insert(1,'项目');
    end;procedure TForm1.Button1Click(Sender: TObject);
    var i:Integer;
    begin
    for i:= 0 to ListBox1.Count-1 do
    If ListBox1.Selected[i] then
    ListBox2.Items.Insert(ListBox2.Count-1,ListBox1.Items[i]);
    ListBox1.Items.Delete(i);
    end;
      

  5.   

    procedure TForm1.ListBox1DblClick(Sender: TObject);
    begin
    ....end;
      

  6.   

    从尾部删起,也就是说用Downto作循环。
      

  7.   

    此问题后来已经解决 方法1  就是上面大家所说的  方法2  用label goto 也能实现 
    谢谢大家