Delphi 7中Memo,ListBox的问题!
窗体中有Button,Memo,ListBox控件Button按钮作用将选定的ListBox中的项目,添加到Memo中并判断Memo中是否有重复项,如有重复删除重复项目....
窗体中有Button,Memo,ListBox控件
Button按钮作用将选定的ListBox中的项目,添加到Memo中并判断Memo中是否有重复项,如有重复删除重复项目.运行程序后选中ListBox中的项目连续点击按钮,但Memo中会保留2行相同项目,选中ListBox中其他项目,点按钮,这时才会将重复行删除(覆盖)
请大家帮我修改一下代码,谢谢!
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
for i:=0 to ListBox1.Count-1 do
begin
if ListBox1.Selected[i] then
Memo1.Lines.Add(ListBox1.Items.Strings[i]);
for j:=i-1 DownTo 0 do
if Comparestr(Memo1.Lines.Strings[i],Memo1.Lines.Strings [j])=0 then
begin
Memo1.Lines.Delete(i);
Break;
end;
end;
end; 展开
Button按钮作用将选定的ListBox中的项目,添加到Memo中并判断Memo中是否有重复项,如有重复删除重复项目.运行程序后选中ListBox中的项目连续点击按钮,但Memo中会保留2行相同项目,选中ListBox中其他项目,点按钮,这时才会将重复行删除(覆盖)
请大家帮我修改一下代码,谢谢!
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
for i:=0 to ListBox1.Count-1 do
begin
if ListBox1.Selected[i] then
Memo1.Lines.Add(ListBox1.Items.Strings[i]);
for j:=i-1 DownTo 0 do
if Comparestr(Memo1.Lines.Strings[i],Memo1.Lines.Strings [j])=0 then
begin
Memo1.Lines.Delete(i);
Break;
end;
end;
end; 展开
1个回答
展开全部
for j:=i-1 DownTo 0 do
if Comparestr(Memo1.Lines.Strings[i],Memo1.Lines.Strings [j])=0 then
begin
Memo1.Lines.Delete(i);
Break;
end;
这儿问题,改为:
for j:=Memo1.Lines.count-2 DownTo 0 do
if Comparestr(Memo1.Lines.Strings[j],Memo1.Lines.Strings [j+1])=0 then
begin
Memo1.Lines.Delete(j+1);
//Break;
end;
if Comparestr(Memo1.Lines.Strings[i],Memo1.Lines.Strings [j])=0 then
begin
Memo1.Lines.Delete(i);
Break;
end;
这儿问题,改为:
for j:=Memo1.Lines.count-2 DownTo 0 do
if Comparestr(Memo1.Lines.Strings[j],Memo1.Lines.Strings [j+1])=0 then
begin
Memo1.Lines.Delete(j+1);
//Break;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询