Type
         TRec=Record
            SField:String;
            SName:string;
           end;
    var
        A:Array of TRec;                
        B:Array of TTRec;
        begin
         SetLength(A,2);
         A[0].SField:='ab';
         ................
        A[2]...............
         end;       如果不用循环怎么使 B:=A;谢谢

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var A,B:array of string;
    begin
        setlength(A,2);
        A[0]:='abc';
        A[1]:='bcd';
        B:=A;
        showmessage(B[0]+B[1]);
    end;
    -------------------------------------
    直接赋值就可以阿,给分八
      

  2.   

    heluqing(鉴之小河) ------------对象动态字符串数组类型可以直接赋或用Copy实现B:=A;但是我的类型是一个动态数组记录类型。小弟目前用的是循环,问各位如果不用循环还有什么良策,谢谢
      

  3.   

    看楼主想两个对象等于到什么程度,B:=A只是把A的指针赋给B,A和B都指向同一地址。如果要两者的地址不相同,而且内容一样只能用循环把A所指向内存区的内容COPY到B所指向的内存区。
      

  4.   


       setlength(b,0);   b:=copy(a,0,sizeof(TRec)*(High(a)+1));这样就可以搞定了
      

  5.   

    When S is a dynamic array, you can omit the Index and Count parameters and Copy copies the entire array.   setlength(b,0);   b:=copy(a);