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

Вниз

TInterfacedList.Delete - произойдёт ли вызов _Release   Найти похожие ветки 

 
Ega23 ©   (2007-04-27 10:28) [0]

или явным образом интерфейс к nil надо после удаления из списка приводить?


 
Ega23 ©   (2007-04-27 10:29) [1]

Блин.  TInterfaceList, кончено...


 
Сергей М. ©   (2007-04-27 10:30) [2]


> произойдёт ли вызов _Release


Обязан произойти.
По прямой аналогии с авторазрушением объекта при его удалении из TObjectList.


 
Игорь Шевченко ©   (2007-04-27 10:32) [3]


> произойдёт ли вызов _Release


1. Посмотреть
2. Попробовать

procedure TInterfaceList.Delete(Index: Integer);
begin
 with FList.LockList do
 try
   Self.Put(Index, nil);  <-------
   Delete(Index);
 finally
   Self.FList.UnlockList;
 end;
end;

procedure TInterfaceList.Put(Index: Integer; const Item: IInterface);
begin
 with FList.LockList do
 try
   if (Index < 0) or (Index >= Count) then Error(@SListIndexError, Index);
   IInterface(List[Index]) := Item; <---------------
 finally
   Self.FList.UnlockList;
 end;
end;


 
Ega23 ©   (2007-04-27 10:33) [4]


> По прямой аналогии с авторазрушением объекта при его удалении
> из TObjectList.


Там нюанс есть. Можно на список задачу об удалении возложить, а можно самому.
Собственно, я так и думал, что само удалиццо, но убедиться хотел.


 
Ega23 ©   (2007-04-27 10:35) [5]

Self.Put(Index, nil);  <-------
IInterface(List[Index]) := Item; <---------------

Блин, вот я баран тупорылый!!!
В исходники првым делом залез, а вот то, что Item это входной параметр - чё-то сразу не допёр.

Всё, вопрос снят, большое спсаибо!



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

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

Наверх




Память: 0.48 MB
Время: 0.034 c
15-1176806589
икс-игрик-й
2007-04-17 14:43
2007.05.20
Помогите решить задачки по физике(кто решит отблагодарю)


15-1177056559
infom
2007-04-20 12:09
2007.05.20
Механизм отображения "красивого" графа


1-1174916951
Dismember
2007-03-26 17:49
2007.05.20
Поддержка горячих мультимедиа клавиш


2-1177903516
>>DEATH<<
2007-04-30 07:25
2007.05.20
вопрос по диалапу


15-1176822673
oldman
2007-04-17 19:11
2007.05.20
Никто не знает, как там поживает соратник Билла Гейтса?