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

Robinkzn

84 Posts

Posted - 06/09/2011 :  08:00:23
Привет. Просьба помочь в следующем деле. Из стандартной динамической линии необходимо сделать линию с двумя текстовыми полями заключенными в круги. Я много читал, тут на форуме, про концы линий и т.д, но так и не понял как лучше быть. Прилагаю скрин с видом такой линии, в кружках должен быть текст.

Surrogate

Russia
122 Posts

Posted - 06/09/2011 :  09:05:59  Visit Surrogate's Homepage
1. Концы линий, это только лишь концы линий, к ним текст никак не применим.
2. У динамической линии (как у любого шейпа) может быть только одно текстовое поле. Так что дублирование текста не получится сделать

Чем смог: вариант с одним кругом и текстом в нем
http://odnoznachnost.narod.ru/Visio/Robinkzn.zip

Go to Top of Page

Robinkzn

84 Posts

Posted - 06/09/2011 :  09:40:22
Спасибо. Увы с одним полем вариант не приемлем. Я попробовал прикрепить через формулы к динамической соединительной два шейпа. Устраивает меня ситуация когда такой шейп располагается, либо слева, либо справа по направлению линии. Есть беда, с неверным позиционированием, в ряде случаем, например линия подключена к обному боку шейпа слева. Прилагаю мой пример.http://narod.ru/disk/15477021001/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%823.zip.html
Go to Top of Page

Robinkzn

84 Posts

Posted - 06/09/2011 :  15:47:02
Просмотрел похожие темы. Раньше копал в сторону коннекторов, теперь в сторону текстового поля. Можно преобразовать динамический коннектор в группу, внуть добавить шейпы, задать их размеры, а как привязать их к концам жестко, чтобы они вставали по направлению линии?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 06/09/2011 :  16:09:31
Если бы это был не динамический коннектор, а коннектор с постоянным количеством сегментов, то можно было бы привязаться к строкам секции геометрии. Сравнивая координаты, можно вычислить направление. Но для динамического такой фокус не пройдет. К началу коннектора привяжешься, а к концу сложновато - неизвестно сколько сегментов будет.
Может быть макросом проще сделать. Например, текст задать в свойствах коннектора. А макрос по команде "Проставить кружочки" мог бы перебрать все шейпы заданного типа и на определенном расстоянии от концов нарисовать круги. Или даже просто их позиционировать, если они входят в состав шейпа (группы). Макросу это сделать проще, потому что нет проблем пересчитать количество секций.
Go to Top of Page

Robinkzn

84 Posts

Posted - 06/09/2011 :  19:07:15
Да. Там и так используется макрос. Причем он выполняется через двойной щелчек на конеекторе, при условии что он соединен. Можно ли както использовать фигуру к которой подключен коннектор как маяк через shapesheet? Чтобы не использовать потом, если пользователь "перетянет" соединение к другой, событие соединение добавлено.
По поводу макроса, как идентифицировать фигуру эту, кружок, точно, чтобы даже при перетаскивании на другой лист её можно было найти.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 06/09/2011 :  19:53:17
Если коннектор - группа, то идентифицировать входящий кружок, зная группу, всегда можно через коллекцию шейпов. Типа ГРУППА.Shapes(i}.
По поводу маяка не очень понял...
Go to Top of Page

Robinkzn

84 Posts

Posted - 06/10/2011 :  06:17:02
По поводу маяка. Если коннектор подключен к фигуре, получить координату Х фигуры, и координату точки соединения, потом их сравнить и по этому судить в какую сторону от соединениея отходит линия.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 06/10/2011 :  14:22:50
Точку соединения можно установить по свойству FromPart. Оно показывает или часть шейпа, куда подключен коннектор, или номер Connection Point.
Go to Top of Page

Robinkzn

84 Posts

Posted - 06/23/2011 :  08:26:41
Сейчас приступил к этой задаче используя макросы. Накладываю фигуры просто на соединительную, в некоторых случаях они её разделяют, никакие манипуляции с настройками не помогают. Разместить внутри группы эти фигуры нельзя, есть соображения. Как предотвратить разделение соединительной?
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)