我是这样写的,执行报错,每删除一行listview.items.count就会减一,循环到i大于count的时候就会出界报错
for i:=0 to listview1.Items.Count -1 do
begin
if listview1.Items.Item[i].Selected then
listview1.Items.Item[i].Delete ;
end;
end;
请教怎么实现

解决方案 »

  1.   

    for i:=ListView.Items.Count-1 downto 0 do 
    beginend
      

  2.   

    TItemStates selected = TItemStates() << isSelected;
       TListItem *Item = slstvwPassOrBlackList->Selected;
       while (Item){
          Item = slstvwPassOrBlackList->GetNextItem(Item, sdAll, selected);
          slstvwPassOrBlackList->Items->Delete(slstvwPassOrBlackList->ItemIndex);
       }
      

  3.   

    界报错
    for i:=listview1.Items.Count -1 downto 0 do
    begin
    if listview1.Items.Item[i].Selected then
    listview1.Items.Item[i].Delete ;
    end;
    end;
    请教怎么实现
      

  4.   

    for i:=listview1.Items.Count -1 downto 0 do
    begin
    if listview1.Items.Item[i].Selected then
       listview1.Items.Item[i].Delete ;
    end;