我想做两个listbox,并且设置按钮“选择全部数据”,作用是点击“选择全部数据”按钮时可以将第一个listbox内的内容全部选择到第二个listbox里,我的代码如下:for i:=0 to listbox1.Items.Count - 1 do
  listbox2.Items.addobject(listbox1.Items[i],listbox1.Items.Objects[1]);
  listbox1.Items.clear;
  setitem(listbox1,0);
可是它会出现错误:“list index outof bounds(-1)”
请问各位高手,怎么解决?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      listbox2.Items.Assign(listbox1.Items );
    end;
      

  2.   

    setitem(listbox1,0);  里面错误!
      

  3.   

    assign会冲掉以前的
      for i:= Listbox1.items.count - 1 downto 0 do
      begin
        Listbox2.items.add(ListBox1.items.Strings[i]);
        //Listbox1.Items.delete[i];//删除listbox1里的项
      end;
      

  4.   

    for i:=0 to listbox1.Items.Count - 1 do
      listbox2.Items.addobject(listbox1.Items[i],listbox1.Items.Objects[1]);
    listbox1.Items.clear;  // 你这儿都给清了,下面在指定ItemIndex肯定越界了
      //setitem(listbox1,0);
      

  5.   

    listbox2.Items.Assign(listbox1.Items );
    listbox1.items.clear;
      

  6.   

    直接将 setitem(listbox1,0)  ;删除不就不行了
      

  7.   

    强烈同意天外流星!
    listbox2.Items.Assign(listbox1.Items );
    listbox1.items.clear;