Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизИнтерфейсы Найти похожие ветки
← →
REA © (2004-04-13 17:14) [0]Пытаюсь получить интерфейс объекта не зная его GUID.
Нашел вот такой кусок кода:
Result := AModule.Components[I];
Supports(IInterface(Result), IWebVariableName, WebVariableName);
т.е. вроде как можно TComponent преобразовать к IInterface, а у меня выдает несовпадение типов. Или лучше сделать GUID и не мучаться?
← →
Гаврила (2004-04-13 18:03) [1]лучше сделать гуид и не мучиться.
не бойся, гуидов хватит на всех :-))
← →
Jack128 © (2004-04-13 18:08) [2]
> Пытаюсь получить интерфейс объекта не зная его GUID
MyObject as IMyInterface ???
← →
Erik © (2004-04-13 18:10) [3]if MyComponent.GetInterface(GUID, MyInterfeic) then
MyInterfeic.TaLaLa("....");
← →
Erik © (2004-04-13 18:13) [4]Уточняю, мемного неточно написал.
GUID - это требуемый интерфейс
MyInterfeic - это интерфейс нашего компонента.
А вобще лучше Help читать.
← →
Гаврила (2004-04-13 18:38) [5]>>Erik © (13.04.04 18:13) [4]
Так гуида то как раз и нет
QueryInterface не пройдет
>>Jack128 © (13.04.04 18:08) [2]
без гуида даже не откомпилируется
← →
Гаврила (2004-04-13 18:41) [6]ТО есть я так понял что гуида вообще нет, то есть интерфейс объявлен без него. Если он есть, но не известен, тогда разумеется [3]. Хотя как он может быть и не быть известен ...
← →
Jack128 © (2004-04-13 19:05) [7]
> без гуида даже не откомпилируется
да, лоханулся.. Простым приcваиванием можно
MyInterface := MyObject;
← →
REA © (2004-04-14 09:43) [8]Да вот как раз и компилируется без ГУИДа.
Я в принципе уже с гуидом сделал, но просто любопытно.
Присваиванием и даже прямым преобразованием как сказано выше выдает несовпадение типов, а вот такое (c ГУИД) вполне проходит:
If Supports(FControl, IMyControl, MyControl) Then
MyControl.DoSomething;
>А вобще лучше Help читать.
Да не больно то там много написано - точнее половина примерно из того что можно найти в исходниках.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c