我用Tlistview的delete操作来删除列表项时老提示错误,怎么办?
tlistview设为vsReport显示风格。
源代码为:
for i:=0 to listviewobject.Items.Count-1 do
begin
//showmessage(inttostr(listviewobject.ItemIndex));
if listviewobject.Items[i].Checked then
listviewobject.Items.Delete(i); end;
老提示:
Access violation at address 0043f804 .
tlistview设为vsReport显示风格。
源代码为:
for i:=0 to listviewobject.Items.Count-1 do
begin
//showmessage(inttostr(listviewobject.ItemIndex));
if listviewobject.Items[i].Checked then
listviewobject.Items.Delete(i); end;
老提示:
Access violation at address 0043f804 .
解决方案 »
- delphi中要计算SHA512用哪套代码或组件较好啊?
- 打开文件问题,请各位帮忙(急)!
- 为什么动态产生的TWebBrowser调用Navigate方法后 确得不到文本?
- 这个问题怎么实现?
- 谁能用程序解决控制打印走纸,将重金回报!
- ComboBox能否显示多列数据?
- 关于快捷键,菜鸟问题!!!
- DBCheckBox对应的字段的值为"True"/"False", 但为什有个阴影?
- 用BDE连Sybase,这样的问题,你们怎么解决的:在程序中query调用BDE设置好的别名(用代码写死),那么,看里面吧:
- 编译错误,高手解答!!
- 我想向 Adobe Photoshop 窗口 发送 ctrl+S 及 alt+F4 按键,行不?
- 如何在delphi中定制浏览器,功能类似于腾讯或者轻骑兵,最好有源代码,用于学习
begin
if listviewobject.Items[i].Checked then
listviewobject.Items.Delete(i);end;
还是for i:=listviewobject.Items.Count-1 downto 0 do 前一种会因为删除了Item而使ItemIndex
的值变化发生删除错误;
后一种不会发生删除错误但会因为ItemIndex的值变化而使一些应该删除的Item不能被删除
i:=0;
while i<listview.items.count-1 do
if listviewobject.Items[i].Checked then
listviewobject.Items.Delete(i)
else Inc(i);