1.变量 a1 没有初始化,在使用它进行比较之前,它的值是不确定的。这将导致错误的结果。
2.代码逻辑错误:在检查项是否重复时,应该是遍历整个列表并将其与之前遇到过的唯一项进行比较,而不是每次都用当前项进行比较。
[Delphi] 纯文本查看 复制代码 procedure TForm7.去重Click(Sender: TObject);
var
i, j: Integer;
uniqueItems: TStringList;
begin
// 初始化一个临时字符串列表用于存储不重复的项
uniqueItems := TStringList.Create;
// 遍历CheckListBox中的每一项
for i := 0 to CheckListBox1.Count - 1 do
begin
// 如果当前项不在uniqueItems中,则添加到uniqueItems
if not uniqueItems.Contains(CheckListBox1.Items[i]) then
uniqueItems.Add(CheckListBox1.Items[i]);
end;
// 清空原始CheckListBox,并将不重复的项重新添加进去
CheckListBox1.Clear;
for j := 0 to uniqueItems.Count - 1 do
CheckListBox1.Items.Add(uniqueItems[j]);
// 释放临时字符串列表
uniqueItems.Free;
end; |