Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Здравствуйте! Если функция _AddRef вызывается при любом обращении   Найти похожие ветки 

 
VK220 ©   (2004-05-17 16:29) [0]

к объекту, то когда вызывается _Release? Спасибо.


 
default ©   (2004-05-17 17:04) [1]

что понимаешь под обращением?
ясно что каждому _AddRef соотв-ет _Release


 
VK220 ©   (2004-05-17 17:14) [2]

т.е. при

Переменная := Объект

вызывается _AddRef у Объекта...


 
default ©   (2004-05-17 17:27) [3]

VK220 ©   (17.05.04 17:14) [2]
да, при выходе за область видимости удаляется или в других случаях(об"nil-ие, передача в подпрог-мму как var или out-параметр, при присвоении может ещё что-то...)
Вы смотрите в окно CPU, ещё в System загляните там маленькие подпрог-ки эти есть(которые обслуж-ие интер-ых пер-ых вып-ют)


 
VK220 ©   (2004-05-17 19:25) [4]

Oh, подробнее это выглядит так:

IntObject = interface
Object = class(TInterfacedObject, IntObject);
SubObject = class(TAggregatedObject, ISubObject);
...
...
IntObject.Create; // вызывается _AddRef у объекта Object
...
...
SubObject.Create(IntObject); // вызывается _AddRef у объекта Object
SubObject.ParentObject := IntObject; // опять вызывается _AddRef у объекта Object
// ParentObject - свойство типа IntObject
...
...
SubObject := nil;
Object := nil;

в итоге, количество ссылок на IntObject равно 1 и он не уничтожается.


 
Бином Ньютоныч   (2004-05-17 20:27) [5]

Имхо, сохраняется ссылка на IntObject через свойство ParentObject. Если это свойство необходимо, то нужно реализовать так:

 function GetParentObject: IntObject;
 property ParentObject: IntObject read GetParentObject;

function ...GetParentObject: IntObject;
begin
 Result:=IntObject(Controller);
end;

Write для него лишнее.


 
VK220   (2004-05-19 16:37) [6]

Большое всем спасибо! Проблема решилась!



Страницы: 1 вся ветка

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
14-1108063526
bot v0.00000001
2005-02-10 22:25
2005.03.06
!!!!помогите решить задачу!!!!


4-1106631182
SkierMax
2005-01-25 08:33
2005.03.06
Выключение компьютера под XP


14-1107260269
IronHawk
2005-02-01 15:17
2005.03.06
Телевизионная разводка по дому, кто подскажет девайс?


3-1107190444
albr
2005-01-31 19:54
2005.03.06
Кеширование изменений и ADO + MSSQL


11-1092579135
SSSSS
2004-08-15 18:12
2005.03.06
Как назначить ParentWindow в уже созданном TForm?