我想把一个listbox中选定的某几行(当然一行也可以),赋给另一个listbox,造成一个在两个框之间移动条目的效果。
我用如下语句:
    for i:=0 to listbox1.count-1 do
    begin
      listbox2.Items.add(listbox1.items.ValueFromIndex[i]);
    end;
    listbox1.items.clear;
但在listbox2中发现在所得到的值比listbox1中的字符少了第一个字符。
如在listbox1中为  abcdef,那么在listbox2中就变成了  bcdef  ; 我用一个edit来显示listbox1.item.valuefromindex[i],确实也是 bcdef,我怀疑listbox1.items.valuefromindex[i]用得不对。
   怎么样才能得到在listbox2中选定的某一行的值呢?如果这个问题不能解决,那我的整下项目就要受影响了。
请大家帮帮我,我的分不多了,全部拿出来了。
谢谢大家。

解决方案 »

  1.   

    用这样的代码即可实现了!ListBox2.Items.Assign(ListBox1.Items);
    大量电脑书籍下载:
    http://www.netyi.net/in.asp?id=ForMoreU
      

  2.   

    或者写成这样:ListBox2.Items.Add(ListBox1.Items[i]);
      

  3.   

    ListBox2.Items.AddStrings(ListBox1.Items);    可以轻松搞定
      

  4.   

    for i:=0 to listbox1.count-1 do
        begin
          listbox2.Items.add(listbox1.items.Strings[ListBox1.ItemIndex]);
        end;
        ListBox1.DeleteSelected;
    如果相实现多选则:
    ListBox2.MultiSelect := True;
      

  5.   

    pilicat第二种方法对的
    谢谢