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

enola

Russia
3 Posts

Posted - 08/12/2003 :  12:01:31
Добрый день!
Как сделать следующее:
1. в EventDrop (секция Events) указать предыдущий объект (т.е. шейп, который до етого бросили)?
2. как можно программно (скажем VB)? перед тем как бросить шейп на рисунок изменить у него какое-нить поле в ShapeSheet?

Tumanov

Russia
1198 Posts

Posted - 08/12/2003 :  15:41:21
1. В EventDrop можно и не пытаться. То есть можно придумать какое-нибудь извращение через третий шейп, в котором отслеживать последний размещенный на странице шейп. Но будет куча сложностей, когда шейп бросят, потом удалят, потом бросят новый и т.д. На все случаи не рассчитаешь, так что лучше этим и не заниматься.
А вот с VBA наверное можно попробовать смотреть последний шейп в коллекции. Они вроде всегда в конец добавляются.
2. Нет никакой разницы, когда менять поле - перед тем как бросить или после того, это не заметно. Так что смело обрабатывайте событие ShapeAdded и в этом обработчике изменяйте поле.
Go to Top of Page

enola

Russia
3 Posts

Posted - 08/12/2003 :  17:54:38
1. насчет временного шейпа ето идея! спасибо.
а насчет vba мне не подходит, так как хочу отдельную программу а не макрос (опять же необходимо будет пользователям "Enable Macros" постоянно тыкать, а это не есть хорошо.)
2. а есть ли возможность средствами того же VB отслеживать это событие ShapeAdded (в VBA я знаю как это сделать)?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 08/12/2003 :  19:30:02
Конечно есть.
Если приложение VB делается по технологии COM Add-in (в Visio 2002 стала поддерживаться) то все практически также, как и в VBA. Это нужно скачать из Microsoft Visio 2002 SDK, он подсаживается в VB6 и добавляет к нему свой пример-шаблон. То есть там уже все понятно становится.
А если технология Add-on, то посложнее. Это уже два разных приложения взаимодействуют. Пример по моему в том же SDK есть (там еще и документация прилагается, правда на английском).
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)