ListBox里的内容被重复选择,怎么办?(25分)

Q

qweasd

Unregistered / Unconfirmed
GUEST, unregistred user!
当我在浏览窗口里打开多个文件到LISTBOX里后,如果再次打开这些文件,发现它们又被显示到
LISTBOX里去了,也就是说LISTBOX里有重复的文件名,怎样避免二次选中呢?
请列出源代码,谢谢!
 
//来个循环
var
i:integer;
a:boolean;
begin
a:=false;
for i:=0 to listbox1.count-1do
begin
if listbox1.Items='新的文件名' then
begin
a:=true;
break;
end;
end;
if a=false then
listbox1.items.append('新的文件名');
end;
 
在打开之前加这句
ListBox1.Clear;
 
先清除
ListBox1.Clear;
 
用IndexOf属性测试是否有该记录存在
if ListBox1.Items.IndexOf('文件名')<0 then
begin
ListBox1.Items.Add('文件名');
end;
或者
ListBox1.Clear;
ListBox1.Items.Add('文件名');
...
 
'新的文件名'应该怎么填?麻烦大家给出完整的源代码吧,我现在把我这部分代码写出来,请
帮我直接修改一下,谢谢!分不够我另开贴再加。
procedure TPlayerForm.OpenBtnClick(Sender: TObject);
var
i: integer;
begin
if OpenDialog1.Execute then
begin
for i:=0 to OpenDialog1.Files.Count-1do
ListBox1.Items.add(ExtractFileName(OpenDialog1.Files));
end;
//s:=ExtractFilePath(OpenDialog1.Files[0]);
end;
//s为全局变量,保存ListBox里被选择的文件名的完整路径
请各位帮我改一下,当第二次在浏览窗口里选择文件时,如果ListBox里已有该文件,就把它过滤掉。
 
procedure TPlayerForm.OpenBtnClick(Sender: TObject);
var
i: integer;
ss:string;
begin
if OpenDialog1.Execute then
begin
for i:=0 to OpenDialog1.Files.Count-1do
begin
ss:=ExtractFileName(OpenDialog1.Files);
if Listbox1.items.indexof(ss)<0 then
Listbox1.items.add(ss);
end;
end;
//s:=ExtractFilePath(OpenDialog1.Files[0]);
end;
 
接受答案了.
 
顶部