Я использую TObjectList для обработки определенного списка меток. Но когда я делаю рекомендуемый .Free в Try Final, он также удаляет элементы управления из списка.
Простой пример с 3 метками:
Procedure GetHeaderLabels(var aList:TObjectList<TLabel>);
begin
aList.Add(Form1.lblHeaderCars);
aList.Add(Form1.lblHeaderBrands);
aList.Add(Form1.lblHeaderModels);
end;
procedure TForm1.Button1Click(Sender: TObject);
var vHeaderLabelsList:TObjectList<TLabel>;
begin
vHeaderLabelsList:=TObjectList<TLabel>.Create;
try
GetHeaderLabels(vHeaderLabelsList);
{... process Header Labels }
finally
vHeaderLabelsList.Free;
end;
end;
В этом случае, когда я выполняю этот код, я получаю отсутствующие элементы управления метками - они удаляются из формы, а в отладке я вижу, что элементы управления равны нулю.
Разве я не должен .Free TObjectList? Как я могу освободить TObjectlist и при этом сохранить элементы управления?