Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
ВнизУничтожение созданных объектов Найти похожие ветки
← →
Andy BitOff © (2007-01-23 19:23) [0]
unit Unit1;
...
type
TSome = class(TObject)
private
...
end;
TSomeList = class(TObjectList)
private
...
public
property Items[Index: Integer]: TSome read GetItems write SetItems; default;
end;
unit Unit2;
...
type
Tfrm_Some = class(TForm)
private
...
public
Faaaa: TSomeList;
property aaaa: TSomeList read Faaaa write Faaaa;
end;
Будут ли автоматически корректно уничтожены объекты property aaaa после уничтожении формы?
← →
Kolan © (2007-01-23 19:50) [1]«[0] Andy BitOff © (23.01.07 19:23)
unit Unit1;
…
type
TSome = class(TObject)
private
…
end;
TSomeList = class(TObjectList)
private
…
public
property Items[Index: Integer]: TSome read GetItems write
SetItems; default;
end;
unit Unit2;
…
type
Tfrm_Some = class(TForm)
private
…
public
Faaaa: TSomeList;
property aaaa: TSomeList read Faaaa write Faaaa;
end;
Будут ли автоматически корректно уничтожены объекты property
aaaa после уничтожении формы?»
Нет.
Нужно сделать это в деструкторе.
← →
Kolan © (2007-01-23 19:51) [2]А если вопрос про объекты внутри самого TSomeList, то да будут.
← →
Johnmen © (2007-01-23 23:56) [3]
> Будут ли автоматически корректно уничтожены объекты property
> aaaa после уничтожении формы?
А где их создание?
← →
Andy BitOff © (2007-01-24 09:24) [4]
> Johnmen © (23.01.07 23:56) [3]
> А где их создание?
Ну, например в FormCreate:
aaaa := TSomeList.Create;
aaaa.Add(TSome.Create);
aaaa.Items[0].someField := "123";
Будет ли аааа корректно уничтожен при уничтожении формы?
Там где ее создалиwith Tfrm_Some.Create(Self) do begin
try
ShowModal;
finaly
Free; // здесь
end;
end;
← →
TRUNK © (2007-01-24 10:46) [5]
> Tfrm_Some = class(TForm)
> private
> ...
> public
> Faaaa: TSomeList;
> property aaaa: TSomeList read Faaaa write Faaaa;
> end;
Зачем обьявлять property aaaa если Field Faaaa обьявлен публично?
Надо Faaaa убрать в секцию private.
> Будут ли автоматически корректно уничтожены объекты property aaaa
Уничтожать надо объекты поля Faaaa.
← →
Andy BitOff © (2007-01-24 19:31) [6]
> TRUNK © (24.01.07 10:46) [5]
> Зачем обьявлять property aaaa если Field Faaaa обьявлен
> публично?
> Надо Faaaa убрать в секцию private.
Ну, конечно, это опечатка. Он в привате.
Значит автоматом они не удалятся. Тогда не имеет особого смысла объявлять его как property, можно просто варом.
← →
umbra © (2007-01-24 19:37) [7]
> Значит автоматом они не удалятся
если речь идет об объектах, ссылки на которые содержатся в объекте типаTSomeList
, то при его уничтожении они будут уничтожены, если
TSomeList.OwnObjects = true (так по умолчанию)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c