Показать сообщение отдельно
  #1  
Старый 21.07.2022, 08:44
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию Изменение длинны массива

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