Вниз
Скачать: 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.026 c
3-1145945499
sally
2006-04-25 10:11
2006.06.18
Список источников ODBC


2-1149092376
Loginov Dmitry
2006-05-31 20:19
2006.06.18
Работа с пакетами


6-1139417049
Korneley
2006-02-08 19:44
2006.06.18
Имя домена Windows по IP адресу - ?


15-1148659991
Junk
2006-05-26 20:13
2006.06.18
Никто не пробовал такое реализовать?


15-1148554071
Crazy manager
2006-05-25 14:47
2006.06.18
Практический вопрос о планирование в маленькой конторе




   Наверх