Author |
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 и в этом обработчике изменяйте поле. |
|
|
enola
Russia
3 Posts |
Posted - 08/12/2003 : 17:54:38
|
1. насчет временного шейпа ето идея! спасибо. а насчет vba мне не подходит, так как хочу отдельную программу а не макрос (опять же необходимо будет пользователям "Enable Macros" постоянно тыкать, а это не есть хорошо.) 2. а есть ли возможность средствами того же VB отслеживать это событие ShapeAdded (в VBA я знаю как это сделать)? |
|
|
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 есть (там еще и документация прилагается, правда на английском). |
|
|
|
Topic |
|