我定义了两个TStringList型变量Strs和Strs3,其中Strs的各元素已赋值,现在我想使Strs3的各元素的初值与Strs的对应元素完全一样。然后再对Strs和Strs3分别进行不同的操作,如删除某些项。我用以下代码:
Strs3:=Strs;为Strs3赋初值
跟踪调试时发现,执行Strs.Delete(i)操作,而没有显式执行Strs3.Delete(i)操作时,但结果却相当于执行了Strs3.Delete(i),看来Strs3只是指向Strs的一个指针。
请问应该怎样写代码为,才可以使Strs3的各元素的初值与Strs的对应元素完全一样,并且对二者的操作互不影响?

解决方案 »

  1.   

    只要将Strs3:=Strs改为:Strs3.text:=Strs.text既可。
      

  2.   

    Strs3 := TStringList.Create;Strs3.Assign(Strs);
      

  3.   

    assign 
    它会帮你循环
    ,其实就是循环
      

  4.   

    你也可以通过items【i】,一个一个来赋值呀,不过这样没有什么意义。还是通过assign来指定比较方面简单。