Про массивы написано много, но одного момента я уяснить так и не смог:
если увеличивать размер массива объектов, под дополнительные объекты просто будет выделена память, сами новые объекты надо создать самостоятельно. Вроде все понятно.
А вот что происходит с объектом когда он оказывается за пределами массива при уменьшении размера? По логике - вроде бы система должна "забыть" про этот объект и считать выделенную под него память свободной. Как это вообще работает, нужно ли уничтожать объект?
А ну да, объект создается как то так:
Код:
function TTask.IncProductList:TProduct;
begin
SetLength(FProductList, Length(FProductList)+1);
FProductList[High(FProductList)]:= TProduct.Create;
Result:= FProductList[High(FProductList)];
end;