list index out of bounds是怎么回事?procedure TForm1.Button3Click(Sender: TObject);
var
i:integer;
liststr:string;
begin
  for i:=0 to listbox1.Items.Count-1  do
  begin
    liststr:=listbox1.Items.Strings[i];
    listbox2.Items.Add(liststr);
  end;
  listbox1.Clear;
  listbox1.Items.SaveToFile('listfile.dat');
  listbox2.Items.SaveToFile('selfile.dat');end;procedure TForm1.Button6Click(Sender: TObject);
var
i:integer;
liststr:string;
begin
  for i:=0 to listbox2.Items.Count-1  do
  begin
    liststr:=listbox2.Items.Strings[i];
    listbox1.Items.Add(liststr);
  end;
  listbox2.Clear;
  listbox1.Items.SaveToFile('listfile.dat');
  listbox2.Items.SaveToFile('selfile.dat');
end;procedure TForm1.Button4Click(Sender: TObject);
var
  i,listcount:integer;
  liststr:string;
begin
   listcount:=listbox1.Items.Count-1;
   for i:=1 to listcount do
      if listbox1.Selected[i] then
      begin
        liststr:=listbox1.Items.Strings[i];
        listbox2.Items.Add(liststr);
      end;
   for i:=listcount downto 1 do
      if listbox1.Selected[i] then
        listbox1.Items.delete(i);
        listbox1.items.savetofile('listfile.dat');
        listbox2.items.savetofile('selfile.dat');
end;procedure TForm1.Button5Click(Sender: TObject);
var
  i,listcount:integer;
  liststr:string;
begin
   listcount:=listbox2.Items.Count-1;
   for i:=1 to listcount do
      if listbox2.Selected[i] then
      begin
        liststr:=listbox2.Items.Strings[i];
        listbox1.Items.Add(liststr);
      end;
   for i:=listcount downto 1 do
      if listbox2.Selected[i] then
        listbox2.Items.delete(i);
        listbox1.items.savetofile('listfile.dat');
        listbox2.items.savetofile('selfile.dat');end;procedure TForm1.Button7Click(Sender: TObject);
var
  k,b:integer;
begin
    for k:=1 to listbox1.Items.Count-1  do
      if listbox1.Selected[k]  then
         listbox1.Items.Delete(k) ;
    for b:=1 to listbox2.Items.Count-1  do
      if  listbox2.Selected[b]  then
         listbox2.Items.Delete(b);
         listbox2.Items.SaveToFile('selfile.dat');
         listbox1.Items.SaveToFile('listfile.dat');
end;
谢谢各位帮我看看

解决方案 »

  1.   

    断点 调试 list下标越界
      

  2.   

    反过来即可
    procedure   TForm1.Button7Click(Sender:   TObject); 
    var 
        k,b:integer; 
    begin 
            for k:=listbox1.Items.Count-1 downto 1    do 
                if   listbox1.Selected[k]     then 
                      listbox1.Items.Delete(k)   ; 
            for b:=listbox2.Items.Count-1 downto 1    do 
                if     listbox2.Selected[b]     then 
                      listbox2.Items.Delete(b); 
                      listbox2.Items.SaveToFile( 'selfile.dat '); 
                      listbox1.Items.SaveToFile( 'listfile.dat '); 
    end;