После добавления FirstPoint
вы Clear
Corners
(после этого список пуст). Затем вы добавляете SecondPoint
, который становится первым элементом (индекс 0).
Редактировать: Для иллюстрации:
var
Shape1, Shape2: TShape;
begin
Shape1.Corners := TList<TMyPoint>.Create;
Shape2 := Shape1;
OutputDebugString(PChar(Format('Shape1.Corners: $%.8x', [Integer(Shape1.Corners)])));
OutputDebugString(PChar(Format('Shape2.Corners: $%.8x', [Integer(Shape2.Corners)])));
end;
Shape1.Corners
и Shape2.Corners
указывают на один и тот же список.