|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.06.2009, 10:03 | #1 |
Пользователь
Регистрация: 27.05.2009
Сообщений: 15
|
Проверка объекта после его уничтожения
Есть такое дело.
Если вызывать FreeAndNill(obj), то вызывается деструктор класса и объект определяется как nil. И его легко определить что он типо убит. А вот если напрямую вызвать Obj.Destroy то объект определяется как Inaccessible Value. И все никак не могу додумать как определить в таком слечае что он уничтожен. Поскажите как можно так сделать. Или проще всетаки использовать FreeAndNil ? |
19.06.2009, 10:43 | #2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
freeandnil действительн использовать проще, но надо быть аккуратным, ибо существуют варианты, при которых freeandnil может вызывать ошибку. В VCL классов с такими подвохами не встречал, так что там можно пользоваться смело, а для своих классов все в ваших руках. После выполнения стандартного деструктора освобождается память, заниаемая объектом, но переменная, содержащая ссылку на этот класс не обнулится и в ней останется ссылка на адрес памяти старого объекта. Соответственно если необходима проверка на наличие объекта лучше использовать freeandnil или присваивать Nil вручную
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
неубиваемый вирус! все антивирусы не находят его! кто знает как его убрать? | Yury111 | Безопасность, Шифрование | 12 | 05.06.2009 11:19 |
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта | User>lia | Общие вопросы Delphi | 4 | 16.01.2009 16:37 |
Проверка многомерного массива на тип сортировки его строк. | FatCat | Помощь студентам | 4 | 20.12.2008 21:21 |
Как поменять одну из текстур объекта не меняя все остальные и без повторной загрузки объекта в GLScene | DomKr@t | Мультимедиа в Delphi | 0 | 14.12.2008 01:52 |
Как изменить свойство объекта, если его имя находится в переменной? | Aiden | Компоненты Delphi | 1 | 13.09.2007 07:57 |