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

Дима

3 Posts

Posted - 03/13/2004 :  15:13:58
Как отловить событие ConnectionsAdded?
Было бы лучше если есть конкретный пример.
ОЧЕНЬ нужно!!!

Tumanov

Russia
1198 Posts

Posted - 03/13/2004 :  16:39:33
Открываете Visio, делаете в нем две страницы.
В VBA пишете следующий текст:

Dim WithEvents SuperPage As Visio.Page

Private Sub Document_DocumentOpened(ByVal doc As IVDocument)
Set SuperPage = Pages(1)
End Sub

Private Sub SuperPage_ConnectionsAdded(ByVal Connects As IVConnects)
MsgBox "Bum!!!"
End Sub

Сохраняете рисунок. (Это подготовка)
-----------------------------
Теперь открываете рисунок, что-нибудь рисуете на первой странице и связываете это коннектором. Делаете то же на второй странице.
Каждое соединение на первой странице приводит к появлению сообщения, а на второй не приводит.
Поясняю.
Dim WithEvents SuperPage As Visio.Page говорит, что на странице SuperPage должны обрабатываться дополнительные события.
Эта страница только объявлена, но не привязана к конкретному объекту. Конкретная привязка производится при загрузке документа. Set SuperPage = Pages(1) говорит, что первая страница документа как раз и будет этой SuperPage.
И вот после этого кажое появление нового Connection будет вызывать обработчик SuperPage_ConnectionsAdded и делать Bum!!!
Естественно, привязку можно делать не только при загрузке, но и другим способом. Например, в другом макросе.
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)