Есть следующий код (примерный, чтобы долго не вникать):
Код:
type
Record1 = record
var1:string;
var2:string;
var3:string;
end;
Records1 = array of Record1;
Class1 = class
public
ArrOfRecord1:Records1;
Var1:string;
Var2:string;
end;
***
Procedure proc1;
var
C1:Class1;
C2:Class1
begin
c1:=Class1.Create;
c2:=Class1.Create;
setlength(C1.ArrOfRecord1, 2);
C2:=C1;
C1.ArrOfRecord1[0].var1:='qwe';
C1.ArrOfRecord1[0].var2:='asd';
C1.ArrOfRecord1[0].var3:='zxc';
C1.ArrOfRecord1[1].var1:='123';
C1.ArrOfRecord1[1].var2:='345';
C1.ArrOfRecord1[1].var3:='567';
ShowMessage(C2.ArrOfRecord1[1].var3);
end;
Проблема в том, что когда я создаю 2 экземпляра класса Class1 и делаю присвоение в proc1, его набор ArrOfRecord1 ссылается на один и тот же Records1. То есть ShowMessage(C2.ArrOfRecord1[1].var3) выводит '567'.
Как изменить код, чтобы это исправить?