var i :integer;
For i:=0 to ListView1.Items.Count-1 do
If ListView1.Items.Item[i].Selected then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Add(Format('delete from 表名 where 字段名=%s',[QuotedStr(ListView1.Items[i].SubItems.strings[0])]));
ADOQuery1.ExecSQL;
ListView1.Items.Delete(i);//删除ListView1里面的相关行
end; 如果这样写的话,会出现很严重的内存错误提示,断点跟踪发现是For i:=0 to ListView1.Items.Count-1 do 这一句的问题
改成 For i:=listview1.items.count-1 downto 0 do后一切正常,不再提示内存错误,请问为什么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货