![]() |
|
#1
|
||||
|
||||
![]() Есть следующий код (примерный, чтобы долго не вникать):
Код:
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'. Как изменить код, чтобы это исправить? |