procedure TForm1.BitBtn1Click(Sender: TObject); begin ListView1.Items.BeginUpdate; ListView1.Items.Clear; ListView1.Items.EndUpdate; end;
前面的哥们你们理解错误了, 他是说要怎么删的快,不是清空, 要是清空的话,还用到这里来问问题吗? …… 我来用一段代码来回答: var I: Integer; begin for I := Pred (ListView.Items.Count) downto 0 do begin ListView.Items.Delete (I); end; end;即,要求从最后面开始一个一个删除,因为ListView中的 链表才用的是List,相当于队列,如果从前面删除的话, 势必被删除项的后面所有的东西要向前面移动,这样会 导致多次分配资源,因而较慢(数量大的情况下),相反 从后面的话,也就相当于在队列的尾部删除,不存在这个 问题,因为它没有移动数据的必要。
如果时全部,当然用
lvlistview.Clear;
lvlistview.Columns.Clear;
listview1.items.beginupdate;
...删除
listview1.items.endupdate;
begin
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
ListView1.Items.EndUpdate;
end;
他是说要怎么删的快,不是清空,
要是清空的话,还用到这里来问问题吗?
……
我来用一段代码来回答:
var
I: Integer;
begin
for I := Pred (ListView.Items.Count) downto 0 do
begin
ListView.Items.Delete (I);
end;
end;即,要求从最后面开始一个一个删除,因为ListView中的
链表才用的是List,相当于队列,如果从前面删除的话,
势必被删除项的后面所有的东西要向前面移动,这样会
导致多次分配资源,因而较慢(数量大的情况下),相反
从后面的话,也就相当于在队列的尾部删除,不存在这个
问题,因为它没有移动数据的必要。
这几天上不了csdn
回复不了,
不过我用了beginupdate.....endupdate以后,
我同时清空几个listView,反而会假死机!这是为什么?