Главная страница
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.048 c
15-1169140576
$Pl@Sh
2007-01-18 20:16
2007.02.11
У кого-нить такое было?


2-1169558509
vitv
2007-01-23 16:21
2007.02.11
Возможен ли следующий запрос?


2-1169605882
exolon
2007-01-24 05:31
2007.02.11
как cделать,чтобы TEdit воспринимал одни цифры и DecimalSeparator


3-1163846329
PEAKTOP
2006-11-18 13:38
2007.02.11
Создание внешнего ключа - глюк ?


9-1143051978
DR0N
2006-03-22 21:26
2007.02.11
Сумосбродная игра от DRON