Главная страница
    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.45 MB
Время: 0.008 c
3-52804
vikser
2003-01-31 17:02
2003.02.17
Консольное приложение и DataModule с ADO????


6-53154
Sewix
2002-12-27 08:37
2003.02.17
TWebBrowser не копирует в бувер в online


1-53052
POT
2003-02-06 16:33
2003.02.17
Передача параметров в функции DLL написанной на С++


3-52801
kaif
2003-01-31 14:01
2003.02.17
Нумерация строк TDataSet.


14-53232
Nick_N_A
2003-01-18 05:45
2003.02.17
Api & Text





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский