Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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;
&#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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.047 c
1-1166610505
ZubrZubr
2006-12-20 13:28
2007.02.11
Component под Component


3-1163790175
F33l
2006-11-17 22:02
2007.02.11
всплывающее окно с картинкой в cxGrid


3-1164180248
MitjaTT
2006-11-22 10:24
2007.02.11
MS SQL 2005 на сервере-хостинге


15-1169583223
Kedge
2007-01-23 23:13
2007.02.11
Выселение Пулковской Обсерватории


2-1169640790
Light-blr
2007-01-24 15:13
2007.02.11
Можно ли из одного юнита взять константу другого?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский