All Forums
 Категория Visio
 Форум Вопросы и ответы
 insert function
Author Previous Topic Topic Next Topic  

ukreni

Ukraine
35 Posts

Posted - 06/27/2008 :  11:29:05
Уважаемые, Мастера MS Visio, т.к. не знаю как правильно задать вопрос опишу ситуацию.
В ячейку ShapeSeet можна вставить функцию - Insert>Function>"назва функции". А как в ячейку вставить свою функцию (которая, например, размещена в ThisDocument)? Ее в списке Select Function нет (если возможно, то как ее в этот список добавить?). И еще один вопрос, если эта функция имеет входные параметры [Function ttt(s as string) as string], то как поступить в данной ситуации?
P.S.: речь идет о Function, а не о Sub.

Tumanov

Russia
1198 Posts

Posted - 06/27/2008 :  15:56:34
Insert>Function> использует только функции Visio. Свои вставить в принципе нельзя.
Для использования своего кода можно вызвать макрос из ThisDocument с помощью CALLTHIS("procedure",["project"],[arg1,arg2,...])
Для того, чтобы сотворить подобие функции, разработчики рекомендуют возвращать результат (макросом) в какую-нибудь другую ячейку шейп-листа. В ту же самую ячейку результат вернуть нельзя.
В SDK приводится вот такой пример использования Callthis:
quote:
Example 3
Use the following procedure in the ThisDocument class module.
Sub A(shpObj As Visio.Shape) MsgBox "Click OK." End Sub Sub B(shpObj As Visio.Shape, strA As String) MsgBox strA End Sub Sub C(shpObj As Visio.Shape, strA As String, strB As String) MsgBox strA & strB End Sub
Use any of the following syntax in a shape's EventDblClick cell with the preceding procedures.
CALLTHIS("ThisDocument.A",)
CALLTHIS("ThisDocument.B",,"Click")
CALLTHIS("ThisDocument.C",,"Click", " OK.")

Можно также использовать RunAddon и RunAddonWArgs.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)