![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Free формы??? [D5]
Vitus © (2003-02-06 11:32:00)Вопрос такой. Вот код создания и закрытия формы:
fmEmp := TfmEmp.Create(Application);
fmEmp.ShowModal;
fmEmp.Free;
До созданияfmEmp=nilиAssigned(fmEmp)=False, но после выполненияfmEmp.Freeпочему-тоfmEmp<>nilиAssigned(fmEmp)=True. В чем проблема? Почему Free не разрушает объект? Приходится после Free делать еще иfmEmp := nil;
Vitus (2003-02-06 12:01:00) [1]ОК, благодарю за советы, FreeAndNill как раз то, что нужно.
Palladin (2003-02-06 12:00:00) [2]
> Юрий Зотов © (06.02.03 11:49)
:)
Согласен. ступил.
Victa (2003-02-06 11:51:00) [3]Free разрушает обьект, но вот переменную, которая собственно на обьект указывает, она в nil не не устанавливает. После вызова Free, fmEmp указывает на область памяти, которая выделялась для обьекта TfmEmp. Что находится там теперь? Но что - то есть.
Если предполагаются какие то проверки после разрушения обьекта -
см. David
Юрий Зотов (2003-02-06 11:49:00) [4]> Вероятно так задумано.
А разве МОГЛОбыть задумано как-то иначе?
КАКИМ ОБРАЗОМобъект может очистить ВНЕШНЮЮссылку на себя? Откуда он вообще может УЗНАТЬо существовании такой ссылки?
Тем более, что их может быть сколько угодно.
Anatoly Podgoretsky (2003-02-06 11:48:00) [5]Vitus (06.02.03 11:32)
А зачем.
Проблемы то нет.
Palladin (2003-02-06 11:44:00) [6]free разрушает любой объект и освобождает всю занятую память (если конечно деструктор правильно написан), но не выставляет ссылку на обьект в Nil. Вероятно так задумано.
gek (2003-02-06 11:40:00) [7]А кто сказал, что Free не разрушает?
FreeAndNill
David (2003-02-06 11:38:00) [8]FreeAndNil