All Forums
 Категория Visio
 Форум Вопросы и ответы
 Пользовательское окно в Visio
Author Previous Topic Topic Next Topic  

Lermontov

Russia
2 Posts

Posted - 10/03/2002 :  15:53:20
Каким образом можно создать окно в Visio для отображения форм создаваемых в MS Visual Basic.

Tumanov

Russia
1198 Posts

Posted - 10/03/2002 :  20:15:44
Ну, скажем так, задача сформулирована несколько некорректно. Я попробую ответить, а уж если не так понял вопрос, тогда придется уточнять.
В общем-то все зависит от того, что Вы сделали с формой, созданной в MS Visual Basic. Если Вы сделали на ее основе приложение (exe), то для Visio оно будет выглядеть как Add-on и может вызывается как из меню Visio, так и определенному событию.
Возьму пример из работющей программы.
Вот код в MS Visual Basic:
Текст Add-on CouSet
------------------------------------------------------------------
Dim Shp As Visio.Shape
Private Sub Command1_Click()
Shp.Data1 = Combo1.Text
Shp.Cells("EventDblClick").Formula = "RUNADDON(""CouSet.exe"")"
Shp.Cells("EventXFMod").Formula = "RUNADDON(""CouUpdate.exe"")"
End
End Sub

Private Sub Form_Activate()
Dim appVisio As Visio.Application
Dim pagObj As Visio.Page
Set appVisio = GetObject(, "Visio.Application")
Set pagObj = appVisio.ActivePage
i = InStr(Command, "/shape=")
If (i = 0) Then
Set Shp = pagObj.DrawRectangle(1, 6, 1.3937, 6.19685)
Shp.Name = "MCounter"
Shp.Text = "0"
Else
s = Mid(Command, i + 7)
Set Shp = pagObj.Shapes.Item(s)
End If
...
Программа содержит форму, на которой ComboBox и кнопка. Сначала запускается через меню Add-On. При этом срабатывает Form_Activate(), находит запустившее его Visio-приложение и рисует в нем прямоугольник MCounter.
Следующая завязка - при щелчке по кнопке на этой форме срабатывает Command1_Click(), который прописывает в ячейку шейп листа нарисованного прямоугольника вызов себя (Shp.Cells("EventDblClick").Formula = "RUNADDON(""CouSet.exe"")"). Теперь уже это приложение (с формой из MS Visual Basic) сможет запускаться при двойном щелчке по им же нарисованному шейпу.
Никаких дополнительных окон здесь не создается. Существует только окно с рисунком Visio и окно Add-on из MS Visual Basic.
А можно и просто нарисовать форму в самом Visio. Это делается через Tools/Macros/Visual Basic Editor/Insert/UserForm. Такая форма будет показываться просто по UserForm1.Show
Ну, а если Вам надо было не это, уточните вопрос.
Go to Top of Page

immortal

Russia
391 Posts

Posted - 07/28/2004 :  05:41:34  Visit immortal's Homepage
quote:
Сначала запускается через меню Add-On

как это сделать в 2003
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 07/28/2004 :  06:58:06
Здесь имелся в виду ручной запуск Add-On через меню Visio - Tools/Macros/ИмяAdd-On'а. Если Add-On лежит в папке Solutions, то его видно в этом меню.
А в Visio 2003 это изменили? Пора искать Visio 2003...
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)