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

Форум по вопросам применения и программирования в Visio
Текущее время: 23 июн 2017, 05:41

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


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


Размещение файлов в формате vsd (а не vsdx/vsdm), увеличивает вероятность ответа стремительным домкратом !!!



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Создание смарт-шейпа
СообщениеДобавлено: 25 янв 2017, 17:08 
Не в сети

Зарегистрирован: 25 янв 2017, 16:46
Сообщений: 3
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Всем доброго времени суток!

Помогите пожалуйста разобраться с задачей.
Необходимо сделать универсальный шейп контрола (поля на экранной форме), который меняет форму, при выборе значения из диалогового окна (правый щелчок мыши по элементу).

Во вложении пример того что должно получиться. Подскажите пути решения этой задачи? Объясните алгоритм.


Вложения:
Example.vsd [63 Кб]
Скачиваний: 17


Последний раз редактировалось qtrab 25 янв 2017, 18:19, всего редактировалось 2 раз(а).
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание смарт-шейпа
СообщениеДобавлено: 25 янв 2017, 17:21 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание смарт-шейпа
СообщениеДобавлено: 25 янв 2017, 18:18 
Не в сети

Зарегистрирован: 25 янв 2017, 16:46
Сообщений: 3
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Спасибо, это я понял, а где и как настроить связь между элементом шейпа и User-defined Cell.
На данном примере эта связь присутствует. Если устанавливаем значение User.Text = 1, то шейп меняет форму на форму текстового поля.

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание смарт-шейпа
СообщениеДобавлено: 25 янв 2017, 18:29 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3330
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
qtrab писал(а):
На данном примере эта связь присутствует. Если устанавливаем значение User.Text = 1, то шейп меняет форму на форму текстового поля.
внутри смартшейп выглядит так
Изображение
каждая из картинок имеет ячейку, которая смотрит на значение в соответствующую ячейку в родительском смарт-шейпе.
например Calc
Изображение
в зависимости от значения 1 или 0 - картинка или показывается в полном размере или скукоживается в ноль
qtrab писал(а):
Я не соображу, как добавить новый элемент на шейп и сделать так, чтобы он устанавливался при выборе в диалоговом окне.
элемент надо внедрять внутрь смарт-шейпа!
Дополнено позднее: 1. открыть группу смартшейпа
2. вставить в нее нужную картинку
3. добавить ей секцию user-defined cells и одноименную ячейку user.xxx
4. прописать формулы в секции Foreign Image Info по аналогии
Изображение
5. прописать формулы автопозиционирования в секции Shape Transform по аналогии
Изображение
6. закрыть группу смартшейпа
7. добавить в секцию user-defined cells смартшейпа одноименную ячейку user.xxx
8. добавить в секцию actions смартшейпа одноименную ячейку actions.xxx
9. в ячейке actions.xxx в столбцах Menu и Checked прописать соответствующие значения
10. в столбце action прописать формулу

Actions

Action.xxx

SETF("User.MVG",0)+SETF("User.Pick",0)+SETF("User.Calc",0)+SETF("User.Text",0)+SETF("User.LOV",0)+SETF("User.Empty",0)+SETF("User.Cal",0)+SETF("User.xxx",1)

 

11. в ячейках Action для строк Actions.MVG, Actions.Pick, Actions.Calc, Actions.Text, Actions.LOV, Actions.Empty, Actions.Cal в конце дописать +SETF("User.xxx",0)
в общем для смартшейпа сделать чтоб было похоже на то что на нижеследующей картинке
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание смарт-шейпа
СообщениеДобавлено: 25 янв 2017, 18:54 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3330
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA

!
в предыдущем сообщении был пропущен один этап, для которого была ошибочная последовательность шагов
Surrogate писал(а):
3. добавить ей секцию user-defined cells и одноименную ячейку user.xxx
в пропущенном этапе нужно было добавить ссылку на еще не созданную ячейку user.xxx в смартшейпе

1. добавить в секцию user-defined cells смартшейпа одноименную ячейку user.xxx
2. добавить в секцию actions смартшейпа одноименную ячейку actions.xxx
3. в ячейке actions.xxx в столбцах Menu и Checked прописать соответствующие значения
4. в столбце action прописать формулу (эту формулу можно скопировать с данного форума)

Actions

Action.xxx

SETF("User.MVG",0)+SETF("User.Pick",0)+SETF("User.Calc",0)+SETF("User.Text",0)+SETF("User.LOV",0)+SETF("User.Empty",0)+SETF("User.Cal",0)+SETF("User.xxx",1)

 

5. в ячейках Action для строк Actions.MVG, Actions.Pick, Actions.Calc, Actions.Text, Actions.LOV, Actions.Empty, Actions.Cal в конце дописать +SETF("User.xxx",0)
в общем на этапах 1-5 для смартшейпа нужно сделать чтоб было похоже на то, что на нижеследующей картинке
Изображение
6. открыть группу смартшейпа
7. вставить в нее нужную иконку
8. добавить в Shapesheet™ иконки секцию user-defined cells и одноименную ячейку user.xxx
9. в поле Value ячейки user.xxx у иконки прописать ссылку на ячейку в смартшейпе

User-defined cells

User.xxx

Sheet.1!User.xxx

 


10. прописать формулы в секции Foreign Image Info иконки по аналогии
Изображение
11. прописать формулы автопозиционирования иконки в секции Shape Transform по аналогии
Изображение
12. закрыть группу смартшейпа


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание смарт-шейпа
СообщениеДобавлено: 26 янв 2017, 11:59 
Не в сети

Зарегистрирован: 25 янв 2017, 16:46
Сообщений: 3
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate, Получилось! Огромное человеческое Спасибо! :)


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

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



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

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


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

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