![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
:Приветствую
Есть объект-родитель, который хранит список созданных им объектов-потомков. Также родитель имеет метод для удаления потомка. Если потомок решает, что он закончил работу и должен освободить память, то вызывает родительский метод. И вот тут я получаю AbstractError. Пока что нашел выход - для родителя добавил стек задач и по таймеру удаляю потомков. Может есть еще варианты? Следующий пример наглядно отображает мою логику. p.s. Поиск не помог.
-------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
Т.е. решение о создании объект принимает один класс, а об удалении - сам объект? Что-то тут не так.
-------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
Именно, сам потомок должен инициировать собственное уничтожение. -------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
Если касательно конкретно описанного кода, то оптимально так:
Кнопки много не "весят", удалятся потом при закрытии приложения (или формы). Если же это абстрактное представление некой бизнес-логики каких-то бизнес-объектов, то подход должен быть другим. Лучше подробнее опишите реальную задачу. Дочерние объекты должен удалять владелец. А если уничтожение инициирует сам объект, то либо поимеем AbstractError, либо надо, чтобы он выставлял некий флаг о своем уничтожении, а родитель совсем в другом методе делал очистку помеченных дочерних объектов. Это сообщение отредактировал(а) pseud - 21.3.2013, 10:03 -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
-------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
Забыл выложить исходник. Вот
Присоединённый файл ( Кол-во скачиваний: 0 ) ![]() -------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |