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

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



Память: 0.46 MB
Время: 0.038 c
15-1147976599
Nic
2006-05-18 22:23
2006.06.18
Как можно себя поддержать в рабочем состоянии


15-1148448464
DillerXX
2006-05-24 09:27
2006.06.18
Товарищи, ну помогите же с COM иначе мне конец :(


8-1137160063
asd
2006-01-13 16:47
2006.06.18
Картинки gif


2-1148960212
Laymer
2006-05-30 07:36
2006.06.18
Помогите!!!


2-1148909221
ksenia
2006-05-29 17:27
2006.06.18
перестановка символов




   Наверх