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