Текущее время: Вт, май 13 2025, 18:31

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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