Форум: "Основная";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
ВнизКак узнать разрушен ли объект или нет Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c