我把一个Tlist的数据复制到另一个Tlist中
for i:=0 to bList.count - 1 do
  aList.add(bList.items[i]);然后再把aList添加到另一个Tlist中
cList.add(aList);
问题来了
当我cList执行了几次后,发现cList.items[0] = cList.items[1] = cList.items[2]  
反正里面的项都是相等的(都是最后一次aList的值),而我每次执行时aList都是不一样的每次aList.add(bList.items[i]);我有执行一次bList.clear
请教大虾到底是为什么啊,我都调试了4个小时了不是找不出原因,55555555

解决方案 »

  1.   

    cList.add(aList);aList始终是同一个对象,同一个地址,后面的改变会影响前面的,当然一样了。如果你想不一样,需要重新创建一个TList,然后把aList的内容复制给它,然后再加到cList中。如:
    var
      dList: TList;  dList := TList.Create;
      dList.Assign(aList);
      cList.Add( dList );不过要记得释放cList中每一项,因为它们在外面没有引用的地方,也没有销毁的机会。
    ————————————————————————————
    诚聘Delphi程序员: http://agui.net.googlepages.com/talent.job.delphi.html