Текущее время: Вс, июн 22 2025, 13:16

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Проблемы с вызовом OCX
СообщениеДобавлено: Сб, апр 02 2005, 11:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Добрый день!
Возникла следующая проблема: есть OCX-объект, хотелось бы внедрить его в сапгуи. Объект внедряется нормально(т.е. я вижу его в сапгуи), но вот нет у него достпа ни к одному методу или свойству. По идее внедрение объекта осуществляется методом "позднего связывания", т.е. мы говорим что у нас есть некий объект, про который мы ничего не знаем кроме того что он OCX. Далее настает очередь механизмов COM, которые разруливают обращение к методам и свойствам объекта после его создания. Т.е. в данном случае позднее связывание с этим объектом не проходит(попробовал провернуть ту же операцию в Excel - тоже самое). Так вот, в Excel получилось внедрить объект через раннее связывание - подключение библиотеки типов описывающей объект. Если я правильно понимаю, для этого и служат транзакции SOLE и SOLI. Но при попытке загрузить библиотеку типов система дампается.
Кто-нибудь сталкивался с таким, и знает как это лечить?
ерсия системы - 4.0B, версия клиента - 620


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 05 2005, 15:20 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
В старом форуме обсуждали тему работы с ActiveX'ами.
Поищи там, еще могу посоветовать посмотреть пример: отчет GRAPHOCX и весь класс разработки, в котором он живет - куча полезных примеров для работы с ActiveX'ами.
В итоге, все сводится к вызову пары-тройки функций.
Удачи!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 06 2005, 10:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Это я все знаю. Я уже как раз речь вел о том, что именно реализованно в этих ФМ. а реализованно в них именно позднее связывание, что не всегда зер-гут. Хотелось бы именно раннего.
Проблему-то я в итоге поборол, договорившись с разработчиками ОСХ, что они сделают реализацию позднего связывания в компненте.
"Но осадочек-то остался!"(С)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 06 2005, 11:25 
Гость
Раннее связывание конечно же является более предпочтительным в плане производительности, если в языке есть соответсвующая поддержка. В действительности, позднего связывания вполне достаточно и с ним проблем быть не должно, нужно лишь в компоненте реализовать интерфейс IDipatch - во многих языках это делается автоматически, по себе знаю.
А в каком виде ты пытаешься загрузить библиотеку типов? Табличку OLELOAD глядел?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 06 2005, 15:00 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 Vadim: Надо все-таки у разработчика спросить, чего они напортачили. В тот момент я смотрел на их библиотеку IDL и там наследование от IDispatch присутствовало.
А грузить я пока не пытался, я хотел дойти хотя бы до этапа вопроса "а где та библиотека которую надо грузить". Просто выполнялось раньше это все через транзакцию SOLE/SOLI. Но сейчас при нажатии на клавишу "Загрузить инфобраузер", "Загрузить инфотип" падает дамп(а ведь именно там, как я понимаю, и была загрузка в OLELOAD). В нотах сказано, мол это все устарело, забейте, используйте просто строку NO_TYPELIB для указания что нет библиотеки типов


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 06 2005, 19:44 
Гость
Действительно, транз. SOLI больше не поддерживается, да и нужды в этом нет.
Попробуйте создать в SOLE запись указав при этом в поле CLSID глобальный идентификатор своей TypeLib, поле CLSID_OLB оставьте пустое, а OBJTYPE = NO_TYPELIB. В этом случае система не будет пытаться найти информацию по типам в OLELOAD, а считает ее непосредственно сама.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Кодер
СообщениеДобавлено: Чт, апр 07 2005, 12:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Так я и сделал. Не работает :-( Поэтому и начал задаваться такими пространными вопросами. Ну да ладно, сейчас работает и с поздним связыванием. Хотя предвижу еще проблемы. Но их буду решать по мере поступления.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB