Главная страница
    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.45 MB
Время: 0.011 c
11-1128965722
Riton
2005-10-10 21:35
2006.06.18
TKOLTreeview - item reaching


8-1137193431
rd
2006-01-14 02:03
2006.06.18
disparity map


2-1149009762
Sapan
2006-05-30 21:22
2006.06.18
Вопрос


1-1147354569
wisardo
2006-05-11 17:36
2006.06.18
Иконка экзешника.


3-1145770856
Express
2006-04-23 09:40
2006.06.18
Стандартное исключение каскадного удаления





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский