Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Список объектов с интерфейсами.


Token ©   (2013-02-21 16:42:00) 

Создается список обектов, по ходу дела интерфейсы этих объектов раздаются дин. библиотекам.

При очистке списка, надоли уничтожать объекты в нем? Или при выдаче дин. библиотеке интерфейса нового объекта старый объект будет уничтожен автоматически?


Cobalt   (2013-02-25 15:02:00) [1]

>>при выдаче дин. библиотеке интерфейса нового объекта старый объект будет уничтожен автоматически?
а это смотря как устроена работа с этими интерфейсами.

автоматически удаляются только интерфейсы, если на них нет больше ссылок.
А вот где удалять классы - это целиком твоя головная боль.
Где захочешь - там и освобождай, но не забывай про последствия.


Token   (2013-02-21 17:02:00) [2]

В списке Assembly могут оказаться как новые, так и старые, у которых уже есть ссылка на интерфейсы потоков данных из предыдущего списка.


Token   (2013-02-21 16:53:00) [3]


IDataStreamIntf=interface(IUnknown)
   procedure AddValue(DT: TDateTime; DataType: TValueType; Error: TErrorType;
                       DataCount: integer; Values: PByteArray);stdcall;
 end;

 IDataStreamsIntf=interface(IUnknown)
   function GetStream(const DevID, Param: OleStr): IUMTDataStreamIntf;stdcall;
 end;

fDataStreams.Clear;
 for c := 0 to Assembly.Count-1 do
   with dtmData do
     if dtsToolModels.Locate(fnDevID,Assembly[c].DevID,[]) then
     begin
       while not dtsToolParams.Eof do
       begin
         fDataStreams.AddStream(Assembly[c].DevID,dtsToolParamsParam.Value);
         dtsToolParams.Next;
       end;
       Assembly[c].Intf.SetStreams(fDataStreams);
     end;


Игорь Шевченко   (2013-02-21 16:47:00) [4]

код в студию


Наверх

Титульная страница Поиск, карта сайта Написать письмо