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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Как отвязать Controls от размера фигуры
СообщениеДобавлено: 04 май 2018, 17:34 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Делаю умный динамический коннектор с двумя дополнительными текстовыми полями в начале и в конце.
Для этого я взял коннектор, преобразовал его в группу, добавил два текстовых блока.
К текстовым полям привязаны ручки управления (Controls).

Возьмем для примера левую надпись с ручкой управления. Я хочу добиться такого поведения, чтобы при изменении коннектора ручка (и привязанный к ней блок текста) не отъезжала от начальной точки (BeginX,BeginY).

Ручка с встроенным текстом (TextPosition) ведет себя именно так, как я хочу сделать - в ней нет формул, записываются только координаты.
Во вновь добавленных ручках присутствуют значения Width и Height. Убрать их не получается, если пишешь значения, а потом передвигаешь ручку, то формулы появляются. Это приводит к тому, что при изменении размера коннектора текст отъезжает в сторону.

Я пытался решить эту проблему через SETATREF (для левого блока), но не получается.
Изображение
Изображение


Вложения:
Connector.vsd [28 Кб]
Скачиваний: 127
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как отвязать Controls от размера фигуры
СообщениеДобавлено: 04 май 2018, 18:38 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2251
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Защитить значение через Guard.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как отвязать Controls от размера фигуры
СообщениеДобавлено: 05 май 2018, 01:52 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как отвязать Controls от размера фигуры
СообщениеДобавлено: 05 май 2018, 11:37 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2251
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Тогда не понял...
Вот так ведет себя Ваш файл. Текст остается там, куда сдвинута точка. А как нужно?
А встроенный текст как раз двигается. Хоть там и записаны не формулы, а координаты, но они вычисляются движком заново при каждом изменении коннектора. (Если задано поведение "пропорционально").


Вложения:
control.gif
control.gif [ 398.81 Кб | Просмотров: 815 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как отвязать Controls от размера фигуры
СообщениеДобавлено: 06 май 2018, 00:40 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Мне нужно задать поведение, чтобы расстояние по x и по y от начальной точки для левого и от конечной точки для правого блока не менялись.
Сейчас они пропорциональны ширине и длине группы. А как отвязаться от этой пропорции - не знаю.

Я могу в Controls.TextPositionL и TextPositionR записать значения , но как только я начну двигать ручку - фомула слетит - в нее запишется формула со ссылками на Width и Height группы. И при при изменении длины текст опять начнет отъезжать или приближаться.

Защитить ее GUARD я тоже не могу - ручки перестанут двигаться.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как отвязать Controls от размера фигуры
СообщениеДобавлено: 06 май 2018, 15:29 
Не в сети
Ветеран
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
Убери нафик все формулы, поставь поведение "X Behavior" = 4 (visCtrlOffsetMax), может помочь
https://msdn.microsoft.com/en-us/librar ... 67166.aspx

Изображение

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как отвязать Controls от размера фигуры
СообщениеДобавлено: 07 май 2018, 13:45 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 114
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
nbelyh
Спасибо, частично помогло.
Изображение

Для X Behavior установил 2 (+ скрытие ручки при отсутствии текста). 2 означает, что X будет считаться от левого карая фигуры. Я проверял - левым краем считается Begin X (LocPinX - указывает на центр коннектора). Это при горизонтальном расположении.

Но если делаю вертикальное положение коннектора, то смещение по X уже считается Begin X - LocPinX (???????)

На анимации я сделал уголок 5х5 мм и показываю этот случай. Не понимаю, почему так работает? Я хочу с помощью макроса подправлять положение надписи, но для этого нужно понять поведение. (примечание - на Y пока не смотрю, на вторую надпись тоже).
Вложение:
conn2.gif
conn2.gif [ 1.79 Mб | Просмотров: 683 ]


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

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



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

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


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

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