Текущий архив: 2006.06.18;
Скачать: CL | DM;
ВнизКлассы Найти похожие ветки
← →
Laymer (2006-06-01 08:22) [0]Доброе время суток!!!
У меня есть некий класс, который я сам сотворил. Создал несколько объектов этого класса. По ходу выполнения программы у меня эти объекты уничтожаются.
Как можно узнать всели объекты этого определенного класса унечтожены???
Заранее благодарю!!
← →
MBo © (2006-06-01 08:25) [1]В implementation модуля с классом ввести переменную-счетчик, конструктор класса ее инкрементирует, а деструктор уменьшает.
Для доступа к ней на чтение - например, class function
← →
Laymer (2006-06-01 08:29) [2]
> MBo © (01.06.06 08:25) [1]
А по подробней можно
← →
MBo © (2006-06-01 08:36) [3]Хм.. что именно непонятно?
← →
Laymer (2006-06-01 08:58) [4]Не понятно как использовать переменную-счетчик
← →
MBo © (2006-06-01 09:08) [5]
unit Unit2;
interface
type
TMy = class
public
constructor Create;
destructor Destroy; override;
class function MyCount: Integer;
end;
implementation
var
MyCnt: Integer = 0;
{ TMy }
constructor TMy.Create;
begin
Inc(MyCnt);
end;
destructor TMy.Destroy;
begin
Dec(MyCnt);
inherited;
end;
class function TMy.MyCount: Integer;
begin
Result := MyCnt;
end;
end.
//----------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
M1, M2: TMy;
begin
Memo1.Lines.Add(IntToStr(TMy.MyCount));
M1 := TMy.Create;
M2 := TMy.Create;
Memo1.Lines.Add(IntToStr(TMy.MyCount));
M2.Free;
Memo1.Lines.Add(IntToStr(TMy.MyCount));
M1.Free;
Memo1.Lines.Add(IntToStr(TMy.MyCount));
end;
← →
Laymer (2006-06-01 09:46) [6]Понятно, большое спасибо!!! :о)
:о))))
← →
ЮЮ © (2006-06-01 09:50) [7]
> Как можно узнать всели объекты этого определенного класса
> унечтожены???
И что, знание того, что не все объекты уничтожены, тебя спасет?.
Для этих целей есть TObjectList, а у его метода Create есть параметр, является ли список собственником объектов.
var
FMyObjects: TObjectList
...
FMyObjects := TObjectList.Create(true);
FMyObjects.Add(TMyClass.Create); - создание объекта и сохранение ссылки на него в списке
FMyObjects.Delete(i) - удаление объекта из списка и его уничтожение
FMyObjects[i] := nil; - уничтожение объета и обnilение ссылки
FMyObjects.Clear; - очистка списка и уничтожение объектов.
Страницы: 1 вся ветка
Текущий архив: 2006.06.18;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.011 c