![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Классы [D7, WinXP]
Laymer © (2006-06-01 08:22:00)Доброе время суток!!!
У меня есть некий класс, который я сам сотворил. Создал несколько объектов этого класса. По ходу выполнения программы у меня эти объекты уничтожаются.
Как можно узнать всели объекты этого определенного класса унечтожены???
Заранее благодарю!!
ЮЮ (2006-06-01 09:50:00) [1]
> Как можно узнать всели объекты этого определенного класса
> унечтожены???
И что, знание того, что не все объекты уничтожены, тебя спасет?.
Для этих целей есть TObjectList, а у его метода Create есть параметр, является ли список собственником объектов.
var
FMyObjects: TObjectList
...
FMyObjects := TObjectList.Create( true);
FMyObjects.Add(TMyClass.Create); - создание объекта и сохранение ссылки на него в списке
FMyObjects.Delete(i) - удаление объекта из списка и его уничтожение
FMyObjects[i] := nil; - уничтожение объета и обnilение ссылки
FMyObjects.Clear; - очистка списка и уничтожение объектов.
Laymer (2006-06-01 09:46:00) [2]Понятно, большое спасибо!!! :о)
:о))))
MBo (2006-06-01 09:08:00) [3]
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 08:58:00) [4]Не понятно как использовать переменную-счетчик
MBo (2006-06-01 08:36:00) [5]Хм.. что именно непонятно?
Laymer (2006-06-01 08:29:00) [6]
> MBo © (01.06.06 08:25) [1]
А по подробней можно
MBo (2006-06-01 08:25:00) [7]В implementation модуля с классом ввести переменную-счетчик, конструктор класса ее инкрементирует, а деструктор уменьшает.
Для доступа к ней на чтение - например, class function