Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

Уничтожение созданных объектов   Найти похожие ветки 

 
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;
&#133
type
TSome = class(TObject)
private
 &#133
end;

TSomeList = class(TObjectList)
private
 &#133
public
 property Items[Index: Integer]: TSome read GetItems write
SetItems; default;
end;

unit Unit2;
&#133
type
Tfrm_Some = class(TForm)
private
 &#133
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
2-1169198467
Mettt
2007-01-19 12:21
2007.02.11
Четность числа


3-1164029298
Ольга
2006-11-20 16:28
2007.02.11
Ошибка I/O Error 103 при работе с базой данных Paradox


3-1164007936
SLP
2006-11-20 10:32
2007.02.11
Сводная таблица в Excel


2-1168454367
serko
2007-01-10 21:39
2007.02.11
Помогите сделать запрос...


2-1169798557
whitebarin
2007-01-26 11:02
2007.02.11
Version info автоматическое увеличение счетчика