Удаление элемента в Firemonkey TListView вызывает исключение вне диапазона

у меня есть 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;

Я неправильно удаляю элемент из списка? Или что-то еще вызывает эту проблему?

0

Решение

Код, который вы используете, является правильным способом удаления элементов в ListView, поэтому должно быть что-то еще не так. В качестве подтверждения, вот несколько примеров из Embarcadero, которые показывают использование этой техники:

Эта проблема исправлена ​​в новых обновлениях C ++ Builder. Я попробовал это сам в Токио и Берлине, и могу подтвердить, что он работает нормально.

1

Другие решения


По вопросам рекламы [email protected]