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

Форум по вопросам применения и программирования в Visio
Текущее время: 19 авг 2018, 00:36

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


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


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Как программно определить список связности шейпа C#?
СообщениеДобавлено: 08 май 2012, 14:39 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
Вобщем у меня есть список шейпов текущего документа.

// Запись шейпов в активном документе в переменную shapes
Shapes shapes = Globals.ThisAddIn.Application.ActivePage.Shapes;

Как мне определить шейпы, которые связаны с ним, причем таким образом, чтобы было понятно in или out - входная или выходная стрелка.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как программно определить список связности шейпа C#?
СообщениеДобавлено: 10 май 2012, 11:26 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
похоже я не совсем понимаю терминологию

Код:
// Запись шейпов в активном документе в переменную shapes
Shapes shapes = Globals.ThisAddIn.Application.ActivePage.Shapes;


C# я не знаю :( , но интуитивно догадался что в этом коде происходит определение переменной - эта переменная содержит в себе все шейпы активного листа. Эти и имеется в виду под словом- список, не так ли ?

Насколько я знаю можно каждый присоединенный объект имеет свойства FromSheet и ToSheet. Думаю, нужно делать перебор всех шейпов входящих в этот список - и заносить все данные в массив

на форуме http://www.visguy.com/2008/03/17/connect-all-shapes-to-each-other/, есть примеры работы с присоединенными шейпами на VBA и C#, может это чем поможет

PS По смыслу наверно это подойдет
Код:
    private void m_connect(Visio.Page visPg )
     {
       Visio.Shape shpFrom, shpTo;
       List<Visio.Shape> collShapes;

       // Set the page-layout settings for routing-style,
       // jump-style, etc.
       m_setPageLayoutSettings(visPg);

       // Add all the non-connector shapes to a VB collection
       collShapes = m_getShapesToConnect(visPg);

       // Loop through the shapes in the shapes collection --
       // connect the ith shape to each jth shape, so to speak:
       for(int i = 0; i < collShapes.Count; i++)
       {
         shpFrom = collShapes[i];

         // Connect to all the other shapes:
         for (int j = i + 1; j < collShapes.Count; j++)
         {
           shpTo = collShapes[j];
           m_connectShapes(shpFrom, shpTo);
         }
       }
     }


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как программно определить список связности шейпа C#?
СообщениеДобавлено: 10 май 2012, 15:55 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
спасибо, полезная информация! как разберусь, скину код.


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

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



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

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


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

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