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

Вниз

Как узнать разрушен ли объект или нет   Найти похожие ветки 

 
Fast   (2003-09-22 03:57) [0]

Я содаю некий объект работаю с ним и при выходе из программы мне надо знать освобождена ли от него память. Хотел использовать Assigned но после вызова метода free, Assigned все рано возвращаеть true.


 
SergeyX   (2003-09-22 04:06) [1]

Assigned это простая проверка
на nil, вам надо после вызова метода free
прировнять переменную к нулю:

var x:TObject;
begin
x:=TObject.Create;
x.Free;
x:=nil;
end;


 
SergeyX   (2003-09-22 04:35) [2]

И где нибудь вначале программы обнуляйте все объекты,
перед их созданием разумеется))), иначе assigned может вернуть
true даже для тех объектов которые вы вообще не создавали...)

А вообще, если проверка требуется только при за вершении программы, то
об этом не обязательно думать, об этом заботится Windows,
я имею ввиду освобождение памяти


 
Fast   (2003-09-22 04:53) [3]

Спасибо SergeyX.
А проверка требуется не только по завершеню программы, потому ваш совет очень пригодится.

А кроме Assigned можно что-либо использовать для подобной задачи?


 
SergeyX   (2003-09-22 05:09) [4]

Только прямую проверку на nil)
if SomeObject=nil then ...

Я использую множество объектов в своих программах.
Для их "учёта" неплох использовать TList.
При создании объекта добовлять его туда, а
при разрушении удалять.


 
Думкин ©   (2003-09-22 05:52) [5]

FreeAndNil()


 
SergeyX   (2003-09-23 00:39) [6]

Действительно есть такой метод, но что он обнуляет, я так и не понял).
Переменная содеражащая ссылку на объект осталась <>0 ...)


 
ЮЮ ©   (2003-09-23 07:14) [7]

Это не метод, а просто процедура и в качестве параметра её и передают переменную, содеражащая ссылку на объект.

И вообще к чему весь это сыр-бор.
В деструкторе объекта (OnDestroy формы) пишем просто
FSomeObject.Free и всё (где FSomeObject - private/protected переменнвя объекта(формы), который создаем(а может и нет) в конструкторе объекта(onCreate формы). Ну откуда, скажите, там может оказаться "мусор"? Только из-за багов в программе, а их чем раньше отловишь, тем лучше :-)



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
6-18493
spogi
2003-08-11 03:01
2003.10.06
клиент-сервер + сокеты...


14-18561
malkolinge
2003-09-18 16:01
2003.10.06
Трагедия


1-18397
Balkon
2003-09-25 10:58
2003.10.06
Как считать число типа Word или SmallInt из массива...


11-18284
Kosta
2003-01-24 16:04
2003.10.06
KolWord Help


9-18209
MeF88
2003-03-26 12:41
2003.10.06
Звездный 3д фон...