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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Как правлино сделать UnGlue
СообщениеДобавлено: 26 мар 2024, 08:51 
Не в сети
Постоянный участник

Зарегистрирован: 29 янв 2010, 09:15
Сообщений: 90
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
У объекта Visio.Cell имеется метод GlueTo, для приклейки шейпа к чему-нибудь. А как правильно сделать UnGlue для приклеенных шейпов?
Контекст вопроса следующий: есть функциональная блоковая диаграмма, в которой функциональные блоки (шейпы) соединены коннекторами. Предполагается, что ВЫХОД какого-нибудь блока может соединяться со ВХОДОМ какого-нибудь блока, а вход со входом или выход с выходом - не может. Проблема с распознаванием где вход, а где выход - решена.
В ситуации, когда пользователь-саботажник пытается соединить коннектором вход со входом или выход с выходом требуется "отклеить" коннектор.
Обрабатывается событие Application.ConnectionAdded.


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

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

Добавить очки репутацииУменьшить очки репутации
А как понимать "UnGlue"? Оставить коннектор вроде бы присоединенным, но без собственно соединения? Так это значит запутать пользователя. Вроде бы все соединено, а соединения нет.
Я бы в таком случае просто удалил коннектор. То есть если пользователь пытается приклеить коннектор не туда, то коннектор исчезает. Пусть тянет заново.
При вызове обработчика в него передается ByVal Connects. Вот отсюда вычислять коннектор и удалять его.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как правлино сделать UnGlue
СообщениеДобавлено: 26 мар 2024, 10:50 
Не в сети
Постоянный участник

Зарегистрирован: 29 янв 2010, 09:15
Сообщений: 90
Очков репутации: 20

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


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

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

Добавить очки репутацииУменьшить очки репутации
Можно попробовать что-то в таком духе
Код:
    Connects(1).FromCell.ResultIU = Connects(1).FromCell.ResultIU + 0.2
    Debug.Print Connects(1).FromCell.ResultIU


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как правлино сделать UnGlue
СообщениеДобавлено: 26 мар 2024, 12:56 
Не в сети
Постоянный участник

Зарегистрирован: 29 янв 2010, 09:15
Сообщений: 90
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
Да, подходит, но есть один нюанс: у меня событие Connection Added возникает только для ячеек BeginX или EndX, а для BeginY или EndY - нет. Соответственно, отскок происходит по одной координате, но это мелочи, чуть усложним логику, и всё получится как надо.
Спасибо!


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

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



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

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


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

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