【发布时间】:2022-01-27 16:02:18
【问题描述】:
我有一个TListView,里面有一些东西:
item1
item1
item2
我想在单击按钮时删除重复项:
item1
item2
到目前为止,这是我的代码:
procedure TMainForm.Button3Click(Sender: TObject);
var i,j, k: integer;
begin
I := 0;
while I < ListView1.Items.Count do
begin
for j := ListView1.Items.Count - 1 downto 0 do
begin
if ListView1.Items[I].SubItems[3] = ListView1.Items[j].SubItems[3] then
ListView1.Items.Delete(J);
Continue;
end;
Inc(I);
end;
end;
它正在删除所有项目。我该如何解决这个问题?
【问题讨论】:
-
您不应该使用
Inc方法而不是J来增加I的价值吗?在您的情况下,J是您的for loo的控制变量,它由for loop机制管理。您的while loop依赖于I变量,因此您应该手动更新您的I变量。
标签: delphi duplicates tlistview