0

我有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();
}

当我尝试删除一个项目时,会引发“参数超出范围”异常。但是,它不在Delete通话中,而是在System.Generics.Collections此处:

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

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

4

1 回答 1

1

您拥有的代码是删除 ListView 中的项目的正确方法,因此肯定有其他问题。作为确认,这里有一些来自 Embarcadero 的示例,它们显示了正在使用的这种技术:

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

于 2017-08-11T19:03:33.223 回答