![]() |
Форум visio.getbb.ru | О форумах Библиотека | Частые вопросы | Литература | Склад материалов Visio Navigator | Blog | Полезные ссылки | О сайте История Visio | Продукты Visio |
Для русскоязычных пользователей Visio. Начинающих и профессионалов. Где взять, как сделать, что купить и т.д. |
Буквально после первых шагов в Visio возникает ситуация, когда еще страшно браться за программирование, но уже хочется поглубже влезть в управление шейпами. Делать свои шейпы, в том числе смарт-шейпы, связывать шейпы с данными, сделать специфический стиль линнии или заливку и т.д. Наконец, требуется добавить интерактивность, например, переключить видимое изображение шейпа или настроить шейп (выбрать ту или иную опцию).
Visio позволяет очень много делать и без программирования. Основной инструмент при этом - шейп-лист (ShapeSheet или как его еще иногда называют - "таблица фигур").
Обычно возникают такие вопросы:
- как добиться того или иного поведения шейпа и можно ли это вообще сделать без программирования;
- как делать некоторые специфические виды шейпов (легенды, data graphics, контейнеры...);
- как создавать и изменять темы, стили линий, заливки;
- как сделать шейп чувствительным к командам пользователя
Примеры задач, которые решаются с помощью шейп-листа:
- Сделать шейп, высота которого изменяется в зависимости от количества текста в шейпе.
- Сделать "мультифигуру", чтобы шейп содержал несколько изображений и можно было выбрать нужное.
- Сделать шейп, изображение которого изменяется на отраженное при "правом" и "левом" подключении к родительскому шейпу.
- Сделать шейп невидимым после удалении текста.
- Добавить контекстное меню для выбора одной из возможных конфигураций изображения.
- Подкрашивать шейп при перемещении.
И этот список можно наращивать до бесконечности. Большинство из таких возможностей реализуется как зависимости между ячейками шейп-листа. В ячейке может находиться либо постоянное значение, либо формула, связывающая ячейку с значением другой ячейки. Как только появляются хитрые связи с формулами, так шейп становится "умным", приобретает специфическое поведение.
Чаще всего достаточно иметь просто зависимость между ячейками. Тогда изменение одной ячейки будет автоматически приводить к изменению другой, зависимой. Однако иногда требуется "толкнуть" первичное изменение, причем сделать эту операцию поудобнее для неподготовленного пользователя. Смотрим, что предлагает шейп-лист для такого случая:
- изменение ShapeData;
- использование секции Action для создания контекстного меню;
- использование встроенных событий;
- настройка поведения шейпа по двойному щелчку.
Заметьте, что перечислены только варианты, позволяющие обойтись без программирования. С программированием набор существенно расширяется, причем программы как правило взаимодействуют с шейпом тоже через шейп-лист.
Изменение ShapeData. Простейший способ настройки шейпа. Простейший, потому что достаточно задать просто данные шейпа, а все остальное выполняется штатным инструментарием. Уже есть специальное окно, которое и отобразит данные шейпа, и примет изменения данных.
Секция Action немного посложнее. Нужно будет уметь добавить секцию к шейпу, добавить и настроить строки секции. Зато шейп приобретает удобное контекстное меню. При этом для исполнения команды требуется буквально два клика и все делается рядом с шейпом источником без открывания дополнительных окон.
Встроенные события. Привычный подход к обработке событий - это когда пишется (например, на VBA) код обработчика, который запускается при наступлении события. Но есть несколько событий, которые привязаны к каждому шейпу и могут работать даже без программного кода. Это перемещение шейпа, изменение текста, "опускание" шейпа на страницу и двойной щелчок по шейпу.
Действия по двойному щелчку, помимо прямого ввода формул в ячейку, могут настраиваться и через специальное диалоговое окно Format / Behavior, что несколько упрощает работу с ячейкой EventDblClick.
19.07.2019  What makes Visio smart? David Parker.
27.06.2019 Про контекстные меню Геннадий Туманов.
26.08.2018  ShapeSheet Formula AutoComplete, Other Improvements Microsoft.
20.02.2017  Understanding Visio’s Color Formulas David Parker.
09.02.2017  More secrets of the Visio Legend shape David Parker.
08.01.2017  A Blackstar alphabet in Visio David Parker.
12.07.2016 Секция Actions - описание Vigil. Видео
13.10.2011  Formatting Custom Units in Visio David Parker.
01.01.2010  Microsoft Visio 2010 Developer Training Microsoft.
05.11.2007  A Working Visio Clock David Parker.
01.01.1900 Как создать будильник? Методы создания интерактивных объектов Ничков А.В..
Сортировка меню Action
Я пытаюсь создать меню Action, что делал уже несколько раз. Но теперь мне нужно, чтобы пункты располагались в самом низу списка.
Знаю, что есть свойство Sort Order. Но оно действует только в верхней части, выше пункта Show ShapeSheet. Можно ли расположить свой пункт в самом низу списка?
Просто вставьте знак % перед текстом меню. Например %Mark for Delete.
Напомню, что есть еще специальные знаки:Знак "&" для подчеркивания следующего символа. Знак "_" для вставки разделителя.
Источник - http://visguy.com/vgforum/index.php?topic=8816