删除列表框中包含组标题的项目

时间:2013-10-14 16:36:36

标签: ios delphi listbox ios7 delphi-xe5

我正在使用Delphi XE5,在iOS应用程序上工作。我在使用例如:

删除列表框中的所有项目时,遇到了在我的应用程序中发生的访问冲突
ListBox1.beginUpdate;
ListBox1.items.clear;
// do work, to re-add new data to list box
...
Listbox1.endUpdate;

通常,上面的代码工作正常并且不会发生错误,事实上,当前所有项目都从该列表框中删除。除了 - 我收到访问冲突。与其他TListBox相比,这个TListBox的唯一区别是它有TListboxGroupHeaderItems。

我的解决方案一直是以下解决方案:

ListBox1.BeginUpdate;
p := Listbox1.Items.Count;
while p <> 0 do begin
  ListBox1.Items.Delete(p-1)
  p := p - 1;
end;
// Do Work, re-add new data, etc.
....
ListBox1.endUpdate;

任何人都知道清除所有项目的正确方法,包括来自TListbox的groupHeaders而不会触发访问冲突?或者我在做什么其他错误? 在调试器中运行时,它会在ListBox1.items.clear;

上中断

更新(2013年10月14日下午2:14): 在iOS 6设备/模拟器中工作时没有错误消息,但使用iOS7时确实发生错误

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题。我的解决方案如下:

for I := Listbox1.Count -1 downto 0 do
begin
  Listbox1.RemoveObject(Listbox1.ListItems[i]);
end;