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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2009, 10:03   #1
AHTuKiLLeR
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 15
По умолчанию Проверка объекта после его уничтожения

Есть такое дело.
Если вызывать FreeAndNill(obj), то вызывается деструктор класса и объект определяется как nil. И его легко определить что он типо убит.

А вот если напрямую вызвать Obj.Destroy то объект определяется как Inaccessible Value. И все никак не могу додумать как определить в таком слечае что он уничтожен.

Поскажите как можно так сделать.
Или проще всетаки использовать FreeAndNil ?
AHTuKiLLeR вне форума Ответить с цитированием
Старый 19.06.2009, 10:43   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

freeandnil действительн использовать проще, но надо быть аккуратным, ибо существуют варианты, при которых freeandnil может вызывать ошибку. В VCL классов с такими подвохами не встречал, так что там можно пользоваться смело, а для своих классов все в ваших руках. После выполнения стандартного деструктора освобождается память, заниаемая объектом, но переменная, содержащая ссылку на этот класс не обнулится и в ней останется ссылка на адрес памяти старого объекта. Соответственно если необходима проверка на наличие объекта лучше использовать freeandnil или присваивать Nil вручную
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
неубиваемый вирус! все антивирусы не находят его! кто знает как его убрать? 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