Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 14:16

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Определить шейп-контейнер
СообщениеДобавлено: 08 авг 2016, 09:35 
Подскажите как можно определить что выделенный шейп - контейнер? Для этого используется visTypeGroup?
Если на диаграмме есть вложенные контейнеры, как можно получить самый верхний?


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Определить шейп-контейнер
СообщениеДобавлено: 08 авг 2016, 10:58 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
Bill17 писал(а):
Подскажите как можно определить что выделенный шейп - контейнер?

я бы определял по наличию ячейки, например User.msvStructureType, ну и ее содержимое ="Container"
Bill17 писал(а):
Если на диаграмме есть вложенные контейнеры, как можно получить самый верхний?

тут сложнее. я не нашел прямой способ. но можно рассмотреть ячейку Relationships, взять влияющие на нее ячейки:
Shape.Cells("Relationships").Precedents
возвращается массив зависимостей в виде ссылок на ячейки.
взять первый элемент массива, узнать его шейп Cell.Shape
это - основной контейнер (вот тут не уверен, что самый верхний контейнер всегда на первой позиции, но у меня было именно так).


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Определить шейп-контейнер
СообщениеДобавлено: 08 авг 2016, 11:30 
Спасибо. А такой вопрос, как узнать что шейп лежит в контейнере?


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Определить шейп-контейнер
СообщениеДобавлено: 08 авг 2016, 11:51 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Для контейнеров есть специальное API (Shape.ContainerProperties). Здесь все описано:

https://msdn.microsoft.com/en-us/librar ... x#Anchor_3
https://msdn.microsoft.com/en-us/librar ... 68907.aspx

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Определить шейп-контейнер
СообщениеДобавлено: 08 авг 2016, 17:45 
Спасибо, это помогло.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB