大家看下这段delphi代码为什么不对

来源:百度知道 编辑:UC知道 时间:2024/07/07 07:47:23
procedure TForm1.N2Click(Sender: TObject);
var dj:integer;
var pp:string;
begin
if opendialog1.Execute then
begin
pp:=opendialog1.FileName;
for dj:=0 to listbox1.Count-1 do
begin
if listbox1.Items.Strings[dj]=pp then
begin
listbox1.Items.Delete(dj);//删除已经存在的
end;
end;
listbox1.Items.Add(pp);
realaudio1.Source:=pp;
realaudio1.DoPlay; //播放文件
end;
end;

我这样写是想让LISTBOX列表里,不存在相同的表项,而且把刚刚插入的放在最后!
如果可以改正怎么样把刚刚插入的表项设置为选中状态
可以换一种写法!!
不行这啊,这样为什么会出现多选的情况!!

procedure TForm1.N2Click(Sender: TObject);
var dj:integer;
var pp:string;
begin
if opendialog1.Execute then
begin
pp:=opendialog1.FileName;
for dj:=0 to listbox1.Count-1 do
begin
if listbox1.Items[dj]=pp then
listbox1.ItemIndex:=dj;
end;
listbox1.DeleteSelected;//删除已经存在的
listbox1.Items.Add(pp);//把PP放在最后
listbox1.ItemIndex:=listbox1.Count-1; //设置PP为选中状态
realaudio1.Source:=pp;
realaudio1.DoPlay; //播放文件
end;
end;

这样应该就是按照你的意思,,我测试是没问题了

//你怎么会出现多选啊?下面的代码我测试是没问题的
//有什么问题你可以百度HI我的

procedure TForm1.N2Click(Sender: TObject);
var
dj:integer;
pp:string;
begin
if opendialog1.Execute then
begin
pp:=opendialog1.FileName;
for dj:=0 to listbox1.Count-1 do
begin
if listbox1.Items.Strings[dj]=pp then
begin