Вниз
Скачать: 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.015 c
1-18412
Дмитрий
2003-09-25 15:35
2003.10.06
не вызывается событие OnDrowItem у TCombobox


7-18661
hawkins
2003-07-22 17:52
2003.10.06
Подскажите, как сделать программу доступной из командной


1-18408
programer2k
2003-09-25 15:47
2003.10.06
логарифмы в Паскале


1-18454
Prima
2003-09-24 17:51
2003.10.06
Помогите с DLL


1-18344
Raptorus
2003-09-25 16:06
2003.10.06
Как можно перекодировать текст из кодировки base64 в Win?




   Наверх