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

Вниз

Как работать с интерфейсами?   Найти похожие ветки 

 
GrayFace ©   (2004-06-21 11:10) [0]

Сделал свой интерфейс. Сгенерил ["16-байтовый-ключ"], пишу
Sender:TObject

 (Sender as IMyInterface).

Ругается: Invalid Typecast.


 
clickmaker ©   (2004-06-21 11:13) [1]

TInterfacedObject(Sender) as IMyInterface


 
U   (2004-06-21 11:22) [2]

var intf: IMyInterface;

if Sender.GetInterface(IMyInterface, intf) then
begin
 intf.DoSomethng;
end;


 
Тимохов ©   (2004-06-21 11:28) [3]

во случае применения ответа [1] и НЕ применения специальных мер рискуете остаться без объекта sender. Дело в том, что после отработки as делается _addRef, а потом делается _release.
И если у вас sender это просто объект, имеющий на момент вызова as свойствао refcount равным 0, то после команды as объект у вас просто удалится (отработает деструктор). А далее - сами знаете, будут av.

Одно из решений - не мешать модель интрефейсов и модель объектов (как советует Эрик Хармон). Воторое решение - отказаться от подсчета ссылок сделав _addref и _release пусташками. Наверное есть еще - сейчас не соображу...


 
clickmaker ©   (2004-06-21 11:35) [4]


> Наверное есть еще - сейчас не соображу...

Например
Sender.ComObject.QueryInterface(IID_IMyInterface, Intf)



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

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

Наверх




Память: 0.47 MB
Время: 0.071 c
9-1078916732
ZAROLF
2004-03-10 14:05
2004.07.04
Ядерный взрыв в 2D аркаде


3-1086598871
Stas
2004-06-07 13:01
2004.07.04
Как добраться до DBGrid.FPressedCell.X


1-1087547319
Andrew2
2004-06-18 12:28
2004.07.04
Много процессов - одна DLL


3-1086875577
yura
2004-06-10 17:52
2004.07.04
ПОМОГИТЕ!!! query interbase blob


3-1086345696
apollo
2004-06-04 14:41
2004.07.04
Скопировать массив из MSAccess в вариантный массив