Вниз
Скачать: CL | DM;

Самоуничтожение компонента   Найти похожие ветки 

 
I_S_   (2002-10-14 09:42) [0]

Создаю компонен, состоящий из нескольких. По нажатию на один их них, должен уничтожаться весь компонент. Наподобии обычной формы - по нажатию на "крестик". Выхываю свой destroy, получаю ситуацию, что некуда вернуться по окончанию. Как с этим бороться?
Заранее благодарен.


 
Vitaly ©   (2002-10-14 09:51) [1]

Правильнее будет, по-моему, не самоуничтожение,
а освобождение неиспользуемых ресурсов диспетчером.
Например, в application.onIdle.
Если же очень хочется - тогда PostMessage(...) владельцу
на уничтожение.

Удачи.


 
Zemal ©   (2002-10-14 12:01) [2]

Можно воспользоваться классом TObjectList, это потомок класса TList и хранит в своих Items не ссылки на объект, а сами объекты... плюсы в том, что он хорошь как контейнер объектов и удаляет все свои подчинённые объекты и освобождает память. Только один нюанс: придётся создавать объекты динамически... и если это визуальные компоненты, то незабыть указать свойство Owner (иначе их небудет видно, т.к. негде их отображать). Если интересует как это можно сделать - могу помочь.


 
qube ©   (2002-10-14 12:35) [3]

Zemal © (14.10.02 12:01)
Прошу прощения, маленькое уточнение. Такого явления, как "не ссылки на объект, а сами объекты" в Object Pascal попросту нет. TObjectList -- это обычный список указателей, наследник TList, только он рассматривает все указатели как указатели на TObject и, если свойство OwnsObjects = True, в деструкторе убивает все объекты, которые в списке содержатся.


 
Zemal ©   (2002-10-14 13:14) [4]

>>qube
Спасибо за замечание! Действительно я преукрасил :). Написал так, как сам себе "представляю для простоты" :). Реализация методов TObjectList позволяет так "думать"(образно представлять) :). А упомянуть про свойство OwnsObjects вообще забыл :). Извиняюсь. В действительности это, конечно, список ссылок на объекты :), которые можно контролировать методами класса TObjectList, в том числе и уничтожать, при уничтожении самой переменной этого класса, централизованно и автоматически. Извиняюсь за неточности.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
4-78720
Gulliver
2002-09-11 12:54
2002.10.24
Как отловить блокировку и разблокировку экрана


3-78203
NewI
2002-09-30 08:42
2002.10.24
Как получить кол-во записей в TQuery. RecordCount не


3-78217
MsGuns
2002-10-03 20:42
2002.10.24
Paradox 3 вылетает, когда запускается из-под Win


1-78414
Miss
2002-10-15 15:16
2002.10.24
???


3-78280
Skywalker
2002-10-03 10:31
2002.10.24
DB




   Наверх