| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > EAccessViolation |
| Автор: Budy 17.5.2006, 18:26 | ||
| :Приветствую Есть код
Поидее в первый раз F свободно удаляется и должен быть равен nil. Или? Может есть другая проверка удаленного объекта? Заранее спасибо Добавлено @ 18:31 А можно ли удалить объект до nil? |
| Автор: Демо 17.5.2006, 18:42 |
| Метод Free не присваивает nil переменной. См. процедуру FreeAndNil |
| Автор: drkot 17.5.2006, 19:01 | ||
Assigned(F);
Поясни что этим хочеш сказать. |
| Автор: Rouse_ 17.5.2006, 19:04 |
| drkot, это ничего не даст... К сожалению так уж устроена модель VCL, причем у разрушенного обьекта даже можно будет прочитать некоторые свойства которые возвращаются напрямую из переменной, AV получиться при обращении к любому методу разрушенного объекта. |
| Автор: Budy 17.5.2006, 19:20 | ||
| Демо, твой пример отлично робит, спасибо! drkot, однако
Rouse_, хм.. интересно. Спасибо. А как насчет простоого присвоения nil? |
| Автор: Rouse_ 17.5.2006, 19:29 |
FreeAndNil разрушает и обниливает указатель на экземпляр класса. Если ты создашь обьект и присвоишь ему NIL то ты просто потеряешь указатель на созданный обьект и не сможешь к нему обращаться, но сам по себе он будет существовать и занимать память. Налицо будет эффект, называемый Memory Leack - тобишь по итальянски "утечка памяти" |
| Автор: drkot 17.5.2006, 19:40 |
Rouse_, проверю. незнал. по мануалу она для этого и задумана. |
| Автор: Rouse_ 17.5.2006, 19:45 | ||
По мануалу она создана для проверки наличия необниленногу указателя или ссылки на процедуру, о чем мануал нам с детской непосредственностью и вещает
|
| Автор: Budy 17.5.2006, 19:50 |
| Rouse_, круто! Всем спасибо. Вопрос решен! |