Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.05 c
2-1148921178
JTAG
2006-05-29 20:46
2006.06.18
Господпа в компоненте StringGrid в ячейке пользователю можно


15-1148362806
cyborg
2006-05-23 09:40
2006.06.18
Нужно в одном интерпретаторе добавить функцию


1-1147026358
Ksenom
2006-05-07 22:25
2006.06.18
Использование TEdit, TComboBox и т.д. как элементы дерва.


2-1149082237
ancot
2006-05-31 17:30
2006.06.18
Сохранение record в TList


3-1145942532
Kley
2006-04-25 09:22
2006.06.18
Доступ к ODBC