Главная страница
    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.041 c
1-1165021404
allrussia
2006-12-02 04:03
2007.02.11
Закрепление и привязка компонентов на форме


15-1169485507
Virgo_Style
2007-01-22 20:05
2007.02.11
День авиации ПВО


6-1157706811
bober
2006-09-08 13:13
2007.02.11
сокеты


15-1169377163
Kolan
2007-01-21 13:59
2007.02.11
Клавиатура Дворака


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский