Author |
Topic |
|
Robinkzn
84 Posts |
Posted - 06/09/2011 : 08:00:23
|
Привет. Просьба помочь в следующем деле. Из стандартной динамической линии необходимо сделать линию с двумя текстовыми полями заключенными в круги. Я много читал, тут на форуме, про концы линий и т.д, но так и не понял как лучше быть. Прилагаю скрин с видом такой линии, в кружках должен быть текст. |
|
Surrogate
Russia
122 Posts |
Posted - 06/09/2011 : 09:05:59
|
1. Концы линий, это только лишь концы линий, к ним текст никак не применим. 2. У динамической линии (как у любого шейпа) может быть только одно текстовое поле. Так что дублирование текста не получится сделать
Чем смог: вариант с одним кругом и текстом в нем http://odnoznachnost.narod.ru/Visio/Robinkzn.zip
† |
|
|
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 |
|
|
Robinkzn
84 Posts |
Posted - 06/09/2011 : 15:47:02
|
Просмотрел похожие темы. Раньше копал в сторону коннекторов, теперь в сторону текстового поля. Можно преобразовать динамический коннектор в группу, внуть добавить шейпы, задать их размеры, а как привязать их к концам жестко, чтобы они вставали по направлению линии? |
|
|
Tumanov
Russia
1198 Posts |
Posted - 06/09/2011 : 16:09:31
|
Если бы это был не динамический коннектор, а коннектор с постоянным количеством сегментов, то можно было бы привязаться к строкам секции геометрии. Сравнивая координаты, можно вычислить направление. Но для динамического такой фокус не пройдет. К началу коннектора привяжешься, а к концу сложновато - неизвестно сколько сегментов будет. Может быть макросом проще сделать. Например, текст задать в свойствах коннектора. А макрос по команде "Проставить кружочки" мог бы перебрать все шейпы заданного типа и на определенном расстоянии от концов нарисовать круги. Или даже просто их позиционировать, если они входят в состав шейпа (группы). Макросу это сделать проще, потому что нет проблем пересчитать количество секций.
|
|
|
Robinkzn
84 Posts |
Posted - 06/09/2011 : 19:07:15
|
Да. Там и так используется макрос. Причем он выполняется через двойной щелчек на конеекторе, при условии что он соединен. Можно ли както использовать фигуру к которой подключен коннектор как маяк через shapesheet? Чтобы не использовать потом, если пользователь "перетянет" соединение к другой, событие соединение добавлено. По поводу макроса, как идентифицировать фигуру эту, кружок, точно, чтобы даже при перетаскивании на другой лист её можно было найти. |
|
|
Tumanov
Russia
1198 Posts |
Posted - 06/09/2011 : 19:53:17
|
Если коннектор - группа, то идентифицировать входящий кружок, зная группу, всегда можно через коллекцию шейпов. Типа ГРУППА.Shapes(i}. По поводу маяка не очень понял...
|
|
|
Robinkzn
84 Posts |
Posted - 06/10/2011 : 06:17:02
|
По поводу маяка. Если коннектор подключен к фигуре, получить координату Х фигуры, и координату точки соединения, потом их сравнить и по этому судить в какую сторону от соединениея отходит линия. |
|
|
Tumanov
Russia
1198 Posts |
Posted - 06/10/2011 : 14:22:50
|
Точку соединения можно установить по свойству FromPart. Оно показывает или часть шейпа, куда подключен коннектор, или номер Connection Point. |
|
|
Robinkzn
84 Posts |
Posted - 06/23/2011 : 08:26:41
|
Сейчас приступил к этой задаче используя макросы. Накладываю фигуры просто на соединительную, в некоторых случаях они её разделяют, никакие манипуляции с настройками не помогают. Разместить внутри группы эти фигуры нельзя, есть соображения. Как предотвратить разделение соединительной? |
|
|
|
Topic |
|