У меня есть это определение типа:Как освободить память в этом случае?
KMenuClass = class
private
pMenuID: String;
public
property MenuID: String read pMenuID;
constructor Create(const paraMenuID: String);
end;
Тогда я это сделать:
constructor KMenuClass.Create(const paraMenuID: String);
begin
pMenuID:= paraMenuID;
end;
procedure TfrmPermissions.FormCreate(Sender: TObject);
begin
clSetup.Items.AddObject('ant', KMenuClass.Create('a007'));
clSetup.Items.AddObject('cat', KMenuClass.Create('x123'));
end;
Вышеуказанные две записи Aer только те записи теста. Я действительно смотрю около 50 предметов. clSetup имеет тип TCheckListBox, и я в основном сохраняю вторую строку вместе с строкой .
я могу выводить определенный элемент, как это:
Var
ThisItem : KMenuClass;
.
.
.
ThisItem := clSetup.Items.Objects[clSetup.ItemIndex] as KMenuClass;
ShowMessage(clSetup.Items[clSetup.ItemIndex] + ' : ' + ThisItem.MenuID);
Но как я распоряжаюсь моих объектов, связанных с каждым элементом списка? Автоматически удаляется, когда я закрываю форму?
Спасибо!
Благодарим за ответ. Я получаю вашу точку зрения, но, с любопытством, не так ли, если я ожидаю, что она будет самоуничтожаться, когда форма закрывается? – itsols
Должен ли я использовать 'ThisIem.Free' или' ThisItem.FreeInstance'? – itsols
Да, я предполагаю, что они не будут освобождены ближе. Система не знает, принадлежат ли они или ссылки. и. бесплатно –