![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
:Приветствую
Есть код
Поидее в первый раз F свободно удаляется и должен быть равен nil. Или? Может есть другая проверка удаленного объекта? Заранее спасибо Добавлено @ 18:31 А можно ли удалить объект до nil? Это сообщение отредактировал(а) Budy - 17.5.2006, 18:27 -------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Метод Free не присваивает nil переменной. См. процедуру FreeAndNil
-------------------- |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 5 Всего: 8 |
Assigned(F);
Поясни что этим хочеш сказать. Это сообщение отредактировал(а) drkot - 17.5.2006, 19:03 -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
drkot, это ничего не даст... К сожалению так уж устроена модель VCL, причем у разрушенного обьекта даже можно будет прочитать некоторые свойства которые возвращаются напрямую из переменной, AV получиться при обращении к любому методу разрушенного объекта.
|
|||
|
||||
| Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
Демо, твой пример отлично робит, спасибо!
drkot, однако
Rouse_, хм.. интересно. Спасибо. А как насчет простоого присвоения nil? -------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
FreeAndNil разрушает и обниливает указатель на экземпляр класса. Если ты создашь обьект и присвоишь ему NIL то ты просто потеряешь указатель на созданный обьект и не сможешь к нему обращаться, но сам по себе он будет существовать и занимать память. Налицо будет эффект, называемый Memory Leack - тобишь по итальянски "утечка памяти" |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 5 Всего: 8 |
Rouse_, проверю. незнал. по мануалу она для этого и задумана. Это сообщение отредактировал(а) drkot - 17.5.2006, 19:41 -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 5 Всего: 29 |
По мануалу она создана для проверки наличия необниленногу указателя или ссылки на процедуру, о чем мануал нам с детской непосредственностью и вещает
|
|||
|
||||
| Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
Rouse_, круто!
Всем спасибо. Вопрос решен! -------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
Так и есть. Хотя странно, почему компилер такой умный, что может заменять присваивание nil на Call @DynArrayClear для динамических массивов, но не может вызывать деструктор объекта.. ;) (присваивание nil динамическому массиву детально) Наверняка это сделано для простоты работы с объектными переменными, иначе было бы очень тяжело отследить, кто же кого дестроит. А по указателю определить, валидный там объект, или нет - это отчасти похоже на работу unerase.. --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |