Tm = record
h, w: Integer;
end;
uses
Generics.Collections;
var
m1, m2: TList<Tm>;
mr: Tm;
i: Integer;
begin
m1 := TList<Tm>.Create;
for i := 1 to 5 do
begin
mr.h := i;
mr.w := i;
m1.Add(mr);
end;
m2 := m1;
mr.h := 6;
mr.w := 6;
m2.Add(mr);
mr := m2.Items[5];
ShowMessageFmt('m1.item[5].h:=%D,m2.item[5].w:=%D',
[m1.Items[5].h, m1.Items[5].w]);
FreeAndNil(m1);
end;