2

我正在使用 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 时确实发生错误

4

1 回答 1

0

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

for I := Listbox1.Count -1 downto 0 do
begin
  Listbox1.RemoveObject(Listbox1.ListItems[i]);
end;
于 2017-02-06T10:50:17.927 回答