Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.03;
Скачать: CL | DM;

Вниз

Почему   Найти похожие ветки 

 
SergeyDon   (2002-05-23 14:07) [0]

Созданная динамически форма после уничтожения оставляет в памяти указатель на себя хотя указатели на её объекты уничтожаются?

var F:TGForm;
...
F:=TGForm.Create(MainForm);
...

в модуле GForm в обработчике OnClose
Action:=cafree;
...


 
Song ©   (2002-05-23 14:11) [1]

Надо приравнить её на nil


 
erik ©   (2002-05-23 14:11) [2]

Это указатель на старый адрес. Если хочеш то после уничтожения формы присваивай F := nil; Только не в событии OnClose!


 
SergeyDon   (2002-05-23 14:36) [3]

erik © (23.05.02 14:11)
Только не в событии OnClose!

ну сделал я MainForm:=nil не в обработчике OnClose форма та видна и существует всёравно.
-----------------------------------
событие OnClose вообще в другом модуле.

Пример я написал упрощенный, что бы примерно было понятно о чём речь идет.
А если делать например так:
for i:=0 to 5 do
Application.CreateForm(TMainForm, MainForm);
формы появятся и даже будут работать но после закрытия в памяти возможно останится всякий мусор?
даже сделав MainForm:=nil то пропадет только последний указатель и неизвестно что будет с остальными?


 
oomneeq ©   (2002-05-23 15:06) [4]

>SergeyDon (23.05.02 14:07)
>Созданная динамически форма после уничтожения оставляет в >памяти указатель на себя хотя указатели на её объекты >уничтожаются?
>
>var F:TGForm;
>...
>F:=TGForm.Create(MainForm);
>...
>
>в модуле GForm в обработчике OnClose
>Action:=cafree;
>...


Указатель F оставляет не форма, а автор кода.
Не может форма (да и любой другой объект) сама по себе отвечать за все ссылки, на нее ссылающиеся. Давно обсосаный факт.
Это как адрес и человек. Может быть человек без адреса, может быть адрес без человека. А за порядком следят власти. :-)
Если важна тебе эта ссылка то сам должен следить.
FreeAndNil может помочь.



Страницы: 1 вся ветка

Текущий архив: 2002.06.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
1-7104
android
2002-05-22 15:13
2002.06.03
Reboot под Win2k


1-6987
Kopachev
2002-05-22 21:51
2002.06.03
В чем я не прав


7-7252
Devid
2002-03-09 20:49
2002.06.03
Как получить информацию о видеоадаптере?


1-7000
NorthMan
2002-05-23 12:01
2002.06.03
Можно ли с помощью директивы компилятора определить,


14-7208
Fryend free flayert akust ju makkert brutts de alavynchy hooy
2002-04-27 22:11
2002.06.03
Почему Reget Junior не качает FTP хотя написано что должен!