Название: Com-сервер Отправлено: Blondinka от Октябрь 12, 2009, 13:01 Здравствуйте, не подскажите, как сделать callBack в com или как обернуть сигналы, чтобы к ним был доступ без помощи средств Qt?
Название: Re: Com-сервер Отправлено: CroCIV от Октябрь 12, 2009, 15:39 у тебя есть пример вызова этой функции не из Qt?
Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 12, 2009, 15:41 Пример вызова функции(callback) есть, но он не для com-сервера....
Название: Re: Com-сервер Отправлено: CroCIV от Октябрь 13, 2009, 08:51 Че так никто и не ответил? Ну это и понятно, тут не мелкомягкие разработчики сидят, вопрос лучше задать на мелкомягком форуме COM - их детище, пусть покажут как это делается без Qt, а как это же реализовать на QtActiveX вопрос скорее всего формальный..
Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 13, 2009, 09:30 Ну если у них(qt) есть средства для создания com, то почему нет средств для обертывания сигналов? Или есть, а я их просто не распознала?
Название: Re: Com-сервер Отправлено: CroCIV от Октябрь 13, 2009, 10:19 в этом вопросе я тоже блондинка ;D жди когда ответят модераторы )
Название: Re: Com-сервер Отправлено: Tonal от Октябрь 13, 2009, 10:23 Вроде бы всё должно делаться автоматом:
Цитировать The ActiveQt framework will expose properties and public slots as ActiveX properties and methods, and signals as ActiveX events, and convert between the Qt data types and the equivalent COM data types. отсюда (http://doc.trolltech.com/4.5/qaxserver.html#implementing-controls)Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 13, 2009, 10:48 И как мои сигналы будут выглядеть для программы на делфи, например? Как события или как?
Название: Re: Com-сервер Отправлено: Tonal от Октябрь 14, 2009, 09:56 Сгенери IDL и посмотри. :)
Ну и тестовую прожку написать попробуй. :) Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 09:57 Сгенерила, посмотрела...Написала..не ловятся эти события :)
Название: Re: Com-сервер Отправлено: Tonal от Октябрь 14, 2009, 10:01 Нарисуй сервер на дельфе с событиями, сделай его клиента. Всё должно ловится.
Потом сервер на дельфе замени на сервер аналогичный на Qt. Смотри в чём отличия. Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 10:04 Не получится, потому что делфи я не знаю.А клиента будет писать другой человек.
Название: Re: Com-сервер Отправлено: Tonal от Октябрь 14, 2009, 10:23 Вот пущай он тестовый сервер для тебя и напишет. :)
И ему не нужно тебя дожидаться, и тебе можно отлаживаться. :) Да, у тебя в параметрах события все типы COM-совместимые? Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 10:49 Да, иначе в таблицу(idl) не пропишет.
Только не понятно какого типа эти события... Название: Re: Com-сервер Отправлено: silart от Октябрь 14, 2009, 11:26 Блондинка, в примерах с Qt есть замечательный пример wrapper. В нем упаковываются несколько виджетов в одни внутрипроцессный сервер (DLL). Все работает. Пробовал правда не на Делпхи, а на VB. ;)
Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 11:31 А причем здесь виджеты?
У меня класс к виджетам не имеющий никакого отношения. Я высылаю свои собственные сигналы(написанные мной). А там я ничего похожего не увидела... Название: Re: Com-сервер Отправлено: silart от Октябрь 14, 2009, 11:40 А причем здесь виджеты? У меня класс к виджетам не имеющий никакого отношения. Я высылаю свои собственные сигналы(написанные мной). А там я ничего похожего не увидела... Блондинка, ну ты че! Какая разница кто писал виджеты. Главное чтобы твой класс, наследовал от QWidget. Он экспортирует все сигналы, слоты и свойства твоего класса в ActiveX компонент. Правда есть одно но, и касается оно Делпхи. Вот читай http://doc.trolltech.com/3.3/qaxserver.html (http://doc.trolltech.com/3.3/qaxserver.html) раздел "Unsupported Clients". Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 11:40 Или вы про тот wrapper, который ...\dotnet\wrapper...
Спасибо, попробую Я и говорю,что мой класс наследуется от QObject.... Название: Re: Com-сервер Отправлено: silart от Октябрь 14, 2009, 11:51 Или вы про тот wrapper, который ...\dotnet\wrapper... Спасибо, попробую Я и говорю,что мой класс наследуется от QObject.... Блондинко! ;) Нет тот что dotnet. Вот "examples\activeqt\wrapper". Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 11:53 Так! Мне показатось,что там ничего нет такого,чтобы мне подошло!!!!!!
Если вы считаете иначе, то, пожалйста, приведите код! Название: Re: Com-сервер Отправлено: silart от Октябрь 14, 2009, 11:56 Так! Мне показатось,что там ничего нет такого,чтобы мне подошло!!!!!! Сейчас я не могу подтвердить, код у меня дома, но я создавал графический ActiveX компонент на Qt, а потом использовал его из Visual Basic по образу и подобию этого примера. Завтра если не забуду принесу.Если вы считаете иначе, то, пожалйста, приведите код! Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 12:01 дубль n!
Я просто напомню вопрос. Есть мой класс NetClient, наследуемый от QObject, сигналы я высылаю свои собственные(раньше ловились олни в другом Qt классе) Сейчас мне нужно сделать com-сервер из этого класса NetClient/ Сейчас нужно,чтобы эти сигналы понимали в делфи. Я знаю,что из них генерируются события. но тестовым приложением на qt я их поймать не могу. Нужно еще что-нибудь сделать,чтобы сигналы принимались,как события. Название: Re: Com-сервер Отправлено: silart от Октябрь 14, 2009, 12:09 дубль n! Я просто напомню вопрос. Есть мой класс NetClient, наследуемый от QObject, сигналы я высылаю свои собственные(раньше ловились олни в другом Qt классе) Сейчас мне нужно сделать com-сервер из этого класса NetClient/ Сейчас нужно,чтобы эти сигналы понимали в делфи. Я знаю,что из них генерируются события. но тестовым приложением на qt я их поймать не могу. Нужно еще что-нибудь сделать,чтобы сигналы принимались,как события. Блондинка!!! Если у тебя твой класс наследуется от QObject, значит у тебя должен быть ActiveX не графический. Вот есть пример "examples\activeqt\comapp", правда я с ним не разбирался, но поидее должен работать. Там все классы унаследованные от QObject. В принципе и в первом примере тоже самое можно сделать, но надо кое-что изменить. Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 12:25 А в каком месте я говорила,что у меня графический ActiveX?
Это раз, а второе - я смотрела эти примеры, и не увидела там отправку собственных сигналов, и поэтому задала вопрос на форуме. Кто отпрпавлял пользовательские сигналы и что с ними делать,когда оборачиваешь в com. Название: Re: Com-сервер Отправлено: silart от Октябрь 14, 2009, 12:41 А в каком месте я говорила,что у меня графический ActiveX? Блондинка!!!Это раз, а второе - я смотрела эти примеры, и не увидела там отправку собственных сигналов, и поэтому задала вопрос на форуме. Кто отпрпавлял пользовательские сигналы и что с ними делать,когда оборачиваешь в com. Фишка в том, что сигналы, транслируемые в COM, отправляются точно также, как и обычные сигналы, которые отправляются без COM. Т. е. с помощью ключевого слова emit. Суть ActiveX оболочки - это полная прозрачность. Т. е. ты объевляешь свой сигнал, и высылаешь его когда тебе нужно по логике программы. А он дальше транслируется в ActiveX без твоего участия. Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 12:46 Скорее не на меня кричать нужно)
Я знаю,что отправляются они при помощи emit. я разве про это спрашивала. Вы сами когда-нибудь из Qt-класса делали com-сервер средствами qt? Если да и вы считает, что я чего-то недопонимаю, то не нужно пространственных объяснений. Просто строчки кода) Например: Да,я делал/знаю как сделать(нужное подчеркнуть), у меня все сгенерировалось автоматически и в классе дополнительных операций делать не нужно. Принимаются сигналы клиентом (в такой-то среде)таким образом:... Это чтобы исключить недопонимание,чтоя сейчас и наблюдаю.Я говорю,что у меняне получается их поймать. Вы продолжаете твердить одно и тоже. Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 14, 2009, 12:49 Вопрос был в следующем:
Что для делфи мои сигналы. ОТвет я получила -события. Я знаю как обрабатывать зарегистрированные типы, то какой тип у этих событий, сгенерированных из сигналов? Я же должна написать спецификацию приходящих событий. Название: Re: Com-сервер Отправлено: Tonal от Октябрь 16, 2009, 08:24 В дельфе есть мастер импорта ActiveX.
Он читает TLB-шку и генерирует IDL и дельфячие обёртки. Просто запусти его и посмотри во что оно конвертнуло. :) Название: Re: Com-сервер Отправлено: Blondinka от Октябрь 16, 2009, 09:33 У меня нет делфи)
Но уже все узнала все, что нужно:) Спасибо всем. |