Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.223.94.103] |
|
Сообщ.
#1
,
|
|
|
Добрый день.
Пытаюсь разобраться с примером сом-сервера. Статья и архив(в самом низу страницы) тут: http://kb.mista.ru/article.php?id=319 В примере всё более или менее понятно, проблемы появляются на этапе тестирования. Делаю "regsvr32 TestVK.dll" Кидаю на форму кнопку и пытаюсь изменить какие-нибудь свойства так: procedure TForm1.Button1Click(Sender: TObject); var vk : Variant; begin vk := CreateOleObject('Addin.TestVK'); vk.Title:='test'; end; но на любое обращение генерируется исключение: "не поддерживается". Сражался с ним два часа с неизменно отрицательным результатом. Подозреваю, что как-то неправильно обращаюсь к методам и свойствам, но никак не могу найти решение. |
Сообщ.
#2
,
|
|
|
Разобрался, может кому-то будет полезно.
procedure TForm1.Button1Click(Sender: TObject); var vk : ILanguageExtender; name : WideString; num : integer; pvarRetValue : OleVariant; paParams : PSafeArray; const Comtest : TGUID = '{0AA9E9D2-BE8B-49EA-B886-97E14B9E0295}'; begin vk := CreateComObject(Comtest) as ILanguageExtender; //vk.GetMethodName(0, 0, name); //возвращает имя метода по номеру //ComServer.FindMethod(name, num);//возвращает номер по имени vk.CallAsFunc(0,pvarRetValue,paParams); //0 - номер метода vk := nil; end; |
Сообщ.
#3
,
|
|
|
Хм, ты уверен что разобрался ? Судя по симптомам у тебя получился не OLE , а COM компонент. Не факт, что 1С сможет его использовать
|
Сообщ.
#4
,
|
|
|
Цитата jack128 @ ? Судя по симптомам у тебя получился не OLE , а COM компонент. Цитата jack128 @ Не факт, что 1С сможет его использовать Версия 1С |