删除Firemonkey中的项目TListView会导致超出范围的异常

时间:2015-07-30 19:54:24

标签: c++ firemonkey c++builder-xe8

我有TListView个项目,其中每个项目都有相应的“删除”按钮。 TListView在按钮单击事件处理程序上具有以下内容:

void __fastcall TSettingsCopyWizard_Fac::CopyToListViewButtonClick(TObject * const Sender,
      TListViewItem * const AItem, TListItemSimpleControl * const AObject)

{
    CopyToListView->BeginUpdate();
    CopyToListView->Items->Delete(AItem->Index);
    CopyToListView->EndUpdate();
}

当我尝试删除某个项目时,会抛出“Arguments out of range”异常。但是,它不在Delete来电,而是在System.Generics.Collections此处:

procedure TListHelper.CheckItemRange(AIndex: Integer);
begin
  CheckItemRangeInline(AIndex); //this is the line that throws the exception
end;

我是否从列表视图中不正确地删除了某个项目?或者是否有其他原因导致此问题?

1 个答案:

答案 0 :(得分:1)

您拥有的代码是删除ListView中项目的正确方法,因此必定存在其他错误。作为确认,以下是Embarcadero的一些示例,显示了正在使用的技术:

在C ++ Builder的新更新中,此问题已得到纠正。我在东京和柏林自己尝试过,可以确认它工作正常。