Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > наследование событий


Автор: DareDevil225 30.12.2008, 09:24
Приветствую!
Возникла проблема, целый день уже не могу найти решения, прошу Вашей помощи.

Есть ActiveX компонент.
С помощью билдера создаю обертку(New VCL Component) над данной DLL-кой.
Создаю свой новый класс, который наследую от сгенерированного класса-обертки и оформляю его в Package.

В ActiveX компоненте обрабатывается событие EventsMouseMove.
Но, в сгенерированной обертке, которая является наследником от TOleControl, тоже есть событие MouseMove.

Пытаюсь унаследовать эти события в производном классе так:
Код

__property OnMouseMove;
__property OnEventMouseMove;



События появляются в Object Inspector в списке Events.
Объявляю обработчики на эти события.
OnMouseMove событие приходит, а OnEventMouseMove - нет.
Кто-нибудь встречался с таким наследованием от ActiveX компонента? В чем может быть проблема?

Т.е. другими словами, как обрабатывать сообщения, в VCL-компоненте, основанном на ActiveX-компоненте( не VCL-ском )?.

Может у кого-нибудь есть какие предположения?

Автор: DareDevil225 30.12.2008, 14:21
Неужели никто не знает что можно придумать?   smile 

Автор: Romikgy 30.12.2008, 14:39
Цитата(DareDevil225 @  30.12.2008,  08:24 Найти цитируемый пост)
__property OnEventMouseMove;

а чье это чудо?

Автор: DareDevil225 11.1.2009, 14:52
Romikgy, того, кто писал ActiveX компонент.
Видимо там так переопределяется стандартный OnMouseMove.

Автор: Romikgy 11.1.2009, 15:11
ну тогда для нормальных подсказок надо видеть код того по чему подсказываешь, ибо у 
Цитата(DareDevil225 @  30.12.2008,  08:24 Найти цитируемый пост)
TOleControl

нет
Цитата(DareDevil225 @  30.12.2008,  08:24 Найти цитируемый пост)
OnEventMouseMove

а что туда засунул ты или другой разработчик , про 17 строку знаешь ?

Автор: DareDevil225 11.1.2009, 16:48
Romikgy, что нет такого эвента я понимаю, в том -то и дело, что нужно к стандартным добавить те, которые определены в ActiveX-компоненте.
А что за 17 строка? Честно, я такого понятия просто не слышал

Автор: Romikgy 11.1.2009, 21:27
Цитата(DareDevil225 @  11.1.2009,  15:48 Найти цитируемый пост)
в том -то и дело, что нужно к стандартным добавить те, которые определены в ActiveX-компоненте.

что должен делать такой эвент ?

Цитата(DareDevil225 @  11.1.2009,  15:48 Найти цитируемый пост)
А что за 17 строка?

это говорит о том что без кода(исходников) подсказывать нечего , и поиск ошибок осуществляет сам спрашивающий!

Автор: DareDevil225 12.1.2009, 11:43
Цитата(Romikgy @ 11.1.2009,  21:27)
Цитата(DareDevil225 @  11.1.2009,  15:48 Найти цитируемый пост)
в том -то и дело, что нужно к стандартным добавить те, которые определены в ActiveX-компоненте.

что должен делать такой эвент ?

По сути этот эвент тоже отслеживает перемещение мыши, необходимо:
- Если ActiveX-компонент уже обрабатывает стандартный эвент, то использовать хотелось бы оба
- Если не обрабатывает, то необходимо использовать стандартный
т.е. пример
- OnMouseMove( стандартный) и OnEventMouseMove( из ActiveX )  - оба отлавливают перемещение мыши, необходимо использовать OnEventMouseMove и OnMouseMove
- OnDblClick( стандартный ) и НЕТ в ActiveX - хотелось бы чтобы использовался стандартный

Примерно так

Автор: Romikgy 12.1.2009, 11:47
я ниче не понял , можно тоже но в коде?

Автор: DareDevil225 12.1.2009, 11:47
Цитата(Romikgy @ 11.1.2009,  21:27)
это говорит о том что без кода(исходников) подсказывать нечего , и поиск ошибок осуществляет сам спрашивающий!

Код есть только сгенерированной билдером обертки и все
Суть же ActiveX-компонента в том и состоит, чтобы скрыть реализацию.

Если же мне были бы доступны исходники самого компонента, этого вопроса и не возникло бы, поскольку бы все необходимое я реализовал бы в самом компоненте.

Автор: Romikgy 12.1.2009, 12:04
то ли я в лыжах....
кто к кому  от кого скрыть ? какой компонент у тя есть (обертка)? 
можно более точно выражатся?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)