добавление интерфейса ActiveX
От: Barlog  
Дата: 30.01.03 10:59
Оценка:
День добрый!
Такая задача: Требуется создать OCX компонент с поддержкой определенного интерфеса в Builder.
Сам интерфейс поставляется в виде 2-х файлов: interface.pas и interface.dcu.
Builder при подключении interface.pas создает interface.hpp, содержащий описание интерфейса. По инстукции для Delphi данный интерфейс надо подключать следующим образом:
1) создать ActiveXLibrary и ActiveForm — понятно
1) uses ...,interface,... — понятно
2) добавить в описание типа
type TActiveFormX=class(TActiveForm, IActiveForm, interface)....и переопределить некоторые функции.
и тут проблема: я не могу сделать то же самое в Builder, т.к. множественное наследование VCL классов запрещено.
Как это обойти, т.е. добавит поддержку этого интерфейса — не понимаю. Может кто-нибудь сталкивался с этим ?
Re: добавление интерфейса ActiveX
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.01.03 11:34
Оценка:
Здравствуйте, Barlog, Вы писали:

B>type TActiveFormX=class(TActiveForm, IActiveForm, interface)....и переопределить некоторые функции.

B>и тут проблема: я не могу сделать то же самое в Builder, т.к. множественное наследование VCL классов запрещено.
Ну и где здесь множественное наследование VCL-классов? Здесь только один VCL-класс: TActiveForm. Интерфейсы не являются потомками TObject и никаких проблем не будет. Так что — обходить нечего.
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: добавление интерфейса ActiveX
От: Barlog  
Дата: 30.01.03 11:54
Оценка:
Здравствуйте, Sinclair, Вы писали:
B>>type TActiveFormX=class(TActiveForm, IActiveForm, interface)....и переопределить некоторые функции.
B>>и тут проблема: я не могу сделать то же самое в Builder, т.к. множественное наследование VCL классов запрещено.
S>Ну и где здесь множественное наследование VCL-классов? Здесь только один VCL-класс: TActiveForm. Интерфейсы не являются потомками TObject и никаких проблем не будет. Так что — обходить нечего.
Может я чего не понимаю,но если я пишу
class TActiveFormX : public TActiveForm, interface
{...};
то выдается ошибка
E2278 Multiple base classes not supported for VCL classes. В хелпе сказано:Delphi style classes cannot have multiple base classes.
Или я не то делаю ?
Re[3]: добавление интерфейса ActiveX
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.01.03 12:24
Оценка:
Здравствуйте, Barlog, Вы писали:
Интересно.
B>Или я не то делаю ?
Хм, а может TActiveForm уже унаследована от IActiveForm? Просто в Дельфи "реализация интерфейсов" не наследуется, и там надо в каждом классе явно прописывать все реализованные интерфейсы. Даже если предок был уже умелым. Проверь.
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.