Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.025 c
1-52919
Bee
2003-02-08 20:52
2003.02.17
можно ли прочесть номер болванки CD-R?


14-53278
Шишкин Илья
2003-02-02 11:55
2003.02.17
Задал вопрос, а ответить никто не может


1-53094
UserL
2003-02-07 07:12
2003.02.17
Как сделать чтоб в TStringGrid-е сначала подсвечивалась бы строка


1-52870
anbezr
2003-02-07 18:26
2003.02.17
Надо ли очищать Canvas


1-52878
UDS
2003-02-08 00:00
2003.02.17
Реальное время............