Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
3-18276
k_len
2003-09-15 12:34
2003.10.06
Базы данных


9-18215
Barlok
2003-03-26 14:37
2003.10.06
Вопрос по OpenGL. Помогите если знаете или сайты подскажите.


14-18551
Delirium
2003-09-18 17:12
2003.10.06
DOS Forever


14-18619
clickmaker
2003-09-16 13:11
2003.10.06
О словах


1-18393
SH
2003-09-22 15:15
2003.10.06
Сортировка строк




   Наверх