Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как удалить компоненты одним махом? [D7, WinXP]


kyn66 ©   (2005-10-27 17:02:00) 

Уважаемые мастера. На форме лежит ScrollBox. На нем в RunTime в программе я создаю много разных компонентом (Label, Images, Shape  и т.д.) Закрывая форму, я их всех потом нахожу через FindComponent и уничтожаю через Free. А не проще-ли удалить только сам ScrollBox, который для всех этих компонентов является Parent? Затем по необходимости создать ScrollBox и заново нашпиговывать компонентами. Это будет правильно с точки зрения высвобождения памяти и грамотности кода?


Ega23   (2005-10-28 09:33:00) [1]


> The Parent property declared in TControl is similar to the
> Owner property declared in TComponent, in that the Parent
> of a control frees the control just as the Owner of a component
> frees that Component.
>


Гм... Не знал...


Leonid Troyanovsky   (2005-10-28 09:10:00) [2]


> kyn66 ©   (28.10.05 08:36) [5]
> Т.е. я на правильном пути. Достаточно удалить только ScrollBox?



Если все это проделывается при закрытии формы [0],
то, вообще, ничего делать не надо.

Впрочем, если понимание не достигнуто, то лучше
воспользоваться советом уважаемого Ega23 ©  [1].

Хотя, если продолжать делать как в [0], я бы тоже
не стал кидаться камнями: может сей ритуал имел
какое-то психо-физиологическое основание.

--
Regards, LVT.


kyn66   (2005-10-28 08:36:00) [3]

Т.е. я на правильном пути. Достаточно удалить только ScrollBox?


Leonid Troyanovsky   (2005-10-27 18:26:00) [4]


> Ega23 ©   (27.10.05 17:56) [3]
>
> > Если он им Parent, то он сам позаботится о их удалении.

> Owner


The Parent property declared in TControl is similar to the Owner property declared in TComponent, in that the Parent of a control frees the control just as the Owner of a component frees that Component.

--
Regards, LVT.


Ega23   (2005-10-27 17:56:00) [5]


> Если он им Parent, то он сам позаботится о их удалении.
> Соответственно, если ему Parent форма, то, вообще,
> ничего делать не надо - все произойдет автоматом.
>


Owner


Leonid Troyanovsky   (2005-10-27 17:30:00) [6]


> kyn66 ©   (27.10.05 17:02)  

> FindComponent и уничтожаю через Free. А не проще-ли удалить
> только сам ScrollBox, который для всех этих компонентов
> является Parent?


Если он им Parent, то он сам позаботится о их удалении.
Соответственно, если ему Parent форма, то, вообще,
ничего делать не надо - все произойдет автоматом.

--
Regards, LVT.


Ega23   (2005-10-27 17:09:00) [7]

Если ты при создании этих компонентов в качестве Owner будешь указывать ScrollBox, то они убаляться автоматом.
TLabel.Create(ScrollBox)
если же ты создаёшь
TLabel.Create(nil), то заботится об их удалении тебе надо самому.


Наверх

Титульная страница Поиск, карта сайта Написать письмо