Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2011, 13:16   #11
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
Да ни кому она не нужна
Раз никому не нужна, значит объект будет уничтожен, как только сч-к ссылок станет равным 0.

> как этот "кто-то" узнает, что ссылка больше не актуальна?

С чего бы ей быть неактуальной, если этот "кто-то" не обнилил эту ссылку ?
Не обнилил - значит объект ему нужен и гарантированно существует.
Обнилил - значит объект ему больше не нужен, и не его забота кому этот объект кроме него еще пока нужен.

Цитата:
На автомате тут не проедешь
Еще как "проедешь", если знаешь матчасть.
Готовый механизм нотификаций реализован как минимум в TComponent и в TControl.
mss вне форума Ответить с цитированием
Старый 21.03.2011, 15:36   #12
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Но как-то мудрёно и отлаживать плохо.
А чё мудреного-то? Так и надо делать.

Цитата:
Раз никому не нужна, значит объект будет уничтожен, как только сч-к ссылок станет равным 0.
Счетчик станет = 0 только когда удалим Линию2. А этого может никогда не произойти.
Цитата:
С чего бы ей быть неактуальной, если этот "кто-то" не обнилил эту ссылку?
А с того, что Линия1 удалена. Ну по крайней мере пользователь приказал её удалить и справедливо считает, что она должна быть уничтожена.
Цитата:
Не обнилил - значит объект ему нужен и гарантированно существует.
Получается всё с ног на голову. Гарантированно существует, гарантированно занимает память, да еще и гарантированно приводит к ошибкам (см. ниже) хотя должен быть гарантированно уничтожен.

Представь, что будет, если удалить Линию1 и попытаетесь сохранить проект. При сохранении Линии2 программа будет искать Линию1 в общем перечне примитивов, ну допустим по идентификатору и не найдет ее. Ошибка однако. Т.е. выходит что связь нужно обрывать заранее. А для этого зависимый элемент нужно известить. Но тогда выходит, что для этой задачи использование интерфейсов не целесообразно. Мы и так связь оборвем. И счетчики нам для этого не нужен.
Sibedir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ссылки segail Microsoft Office Excel 6 13.10.2009 22:16
Ссылки Принц HTML и CSS 1 31.05.2008 15:46