我正在使用在iOS应用程序上运行的Delphi XE5。我在使用以下示例从列表框删除所有项目时遇到了在我的应用程序中发生的访问冲突:
ListBox1.beginUpdate;
ListBox1.items.clear;
// do work, to re-add new data to list box
...
Listbox1.endUpdate;
通常,上面的代码可以正常工作,并且不会发生任何错误,实际上,当前所有项目都已从该列表框中删除。除了-我遇到访问冲突。与此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;
上中断更新(10/14/2013 2:14 PM):
在iOS 6设备/模拟器中工作时没有错误消息,但是在iOS7中工作时确实发生了错误
最佳答案
我有类似的问题。我的解决方案包括以下内容:
for I := Listbox1.Count -1 downto 0 do
begin
Listbox1.RemoveObject(Listbox1.ListItems[i]);
end;
关于ios - 删除列表框中包含组标题的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19364934/