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

Форум по вопросам применения и программирования в Visio
Текущее время: 24 сен 2019, 00:46

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Создание выключателя (Элемент AсtiveX)
СообщениеДобавлено: 10 фев 2019, 08:34 
Не в сети

Зарегистрирован: 06 фев 2019, 13:21
Сообщений: 13
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Ну вот тут https://www.planetaexcel.ru/forum/?PAGE ... &TID=46700 ребята выложили файл "Правый клик" где такое осуществили, я даже скачал и попробовал - действительно работает. Но там во первых для эксель, а во вторых мне непонятно конкретно какую часть формулы нужно взять, так как там для левой и правой кнопки мыши сразу и ещё кое что, что мне не нужно. Так же там клик по фигуре изменяет саму фигуру, что мне тоже надо, но надо ещё что бы клик по этой фигуре ещё изменял другие фигуры. Может как то на основе ихней формулы попробовать что то для визио?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание выключателя (Элемент AсtiveX)
СообщениеДобавлено: 10 фев 2019, 09:20 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3685
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
Электрон писал(а):
Но там во первых для эксель, а во вторых мне непонятно конкретно какую часть формулы нужно взять, так как там для левой и правой кнопки
ключевые слова ЭТО ДЛЯ ЭКСЕЛЬ !
в предыдущем моем сообщении была ссылок на сообщения в одной ветке в другом форуме. между ними было сообщение содержащее код
Surrogate между строк писал(а):
Обсидиан, спасибо ! я пытался идти этим путем. но почему-то стал копать в с событием SelectionAdded
Код:
Dim WithEvents app As Visio.Application
Private Sub LetsStart()
Set app = Visio.Application
End Sub
Private Sub app_SelectionChanged(ByVal Window As IVWindow)
Dim sh As Shape
Set sh = Window.Selection(1)
MsgBox sh.Name
End Sub
который выводит имя фигуры по которой произошел клик.
Для того чтобы изменять другие фигуры (не только лишь ту по которой кликнули), нужно знать как к ним обращаться !
Т.е. нужно знать ID фигуры или ее имя Name. Более предпочтительным является обращение по ID (см. рекомендацию MS) !
Код:
sh1 = ActivePage.Shapes.Item(7)
sh2 = ActivePage.Shapes.Item("Sheet.40")
' где 1 это ID одной фигуры, а Sheet.2 имя другой фигуры

Этим имена или ID нужно знать заранее или определять в ходе работы кода.
Если речь идет о фигурах которые располагаются внутри фигуры по которой произощел клик, то обращаться к ним можно
Код:
sh3 = ActivePage.Shapes.Item(7).Shapes.Item(40)
sh4 = ActivePage.Shapes.Item(7).Shapes.Item("Sheet.12")
sh5 = ActivePage.Shapes.Item("Sheet.40").Shapes.Item(2)
sh6 = ActivePage.Shapes.Item("Sheet.40").Shapes.Item("Sheet.100500")
' где 1 это ID одной фигуры, а Sheet.2 имя другой фигуры

я про форму обращения к вложенным фигурам делал описание: Сокращенная форма обращения к шейпу


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание выключателя (Элемент AсtiveX)
СообщениеДобавлено: 10 фев 2019, 10:38 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3685
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
в качестве дополнения к вышесказанному. изменение любый свойств фигур (определяющих внешний вид, поведение фигур, ячейки хранения данных) в визио осуществляется через таблицу свойств фигур !
воспользуйтесь данным ранее советом, чтобы узнать какие ячейки этой таблицы свойств нужно менять
Surrogate писал(а):
включаете макрорекордер, делает все эти перекрашивания фигур и т.п., анализируете код и адаптируете и помещаете в соответствующую процедуру.
в полученном коде надо будет только переписать обращение к фигурам


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание выключателя (Элемент AсtiveX)
СообщениеДобавлено: 10 фев 2019, 10:45 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
ToggleButton1_Click()...а я мучаюсь с CommandButton

1. А может, ну их вообще, эти кнопки?...
В Visio они всегда выглядят инородными элементами. А в каких-то случаях еще и не работают.
Как мне кажется, всегда нужно стараться обойтись обычными шейпами. Меньше будет проблем.
2. Если брать обычные шейпы, то для приема события от них хорошо подходят либо двойной щелчок, либо событие, назначенное на выпадающее меню по правой кнопке мыши. И то и другое легко назначаются через секцию Events или Actions.
3. Переключаемые шейпы в принципе находятся путем анализа связей. Наверное это будет лучший способ для данной задачи.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание выключателя (Элемент AсtiveX)
СообщениеДобавлено: 10 фев 2019, 10:58 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Для анализа связей можно взять за основу код вот из этого топика
http://visguy.com/vgforum/index.php?topic=8702.0
Индикацию, естественно, заменить. Использовать только поиск подключенных шейпов.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание выключателя (Элемент AсtiveX)
СообщениеДобавлено: 10 фев 2019, 12:05 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Вот упрощенный пример.
Только я сейчас на Visio 2007, в которой еще не было ConnectedShapes, поэтому использован более примитивный поиск соединений и всего на 2 уровня (без рекурсии). Ну, это ж для примера...
Верхний переключатель настроен на DoubleClick. Нижний - на выпадающее меню Click.
Для индикации состояния переключателя тоже задействован цвет. В нормальном режиме лучше, конечно, использовать изменяющее изображение шейпа (мультишейп, мультифигуру).


Вложения:
click.gif
click.gif [ 48.83 Кб | Просмотров: 102 ]
Click.vsd [37 Кб]
Скачиваний: 10
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2

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



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

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


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

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