All Forums
 Категория Visio
 Форум Вопросы и ответы
 Изменение порядка шейпов в группе
Author Previous Topic Topic Next Topic  

zhuravsky

Russia
115 Posts

Posted - 06/27/2008 :  09:57:29
Есть группа, состоящая из 2-х шейпов, которые накладываются друг на друга. Можно ли в секции Actions этой группы сделать команду, чтобы изменять порядок шейпов, что-то вроде Bring to front/Send to back.
С макросами понятно, что можно, а вот без них?

Tumanov

Russia
1198 Posts

Posted - 06/27/2008 :  10:48:41
Если по-хорошему не получится, то может попробовать обмануть...?
Нарисовать один из шейпов в двух экземплярах в разных позициях и переключать видимость. Пусть думают, что он перескакивает.
Go to Top of Page

Geosher

Russia
10 Posts

Posted - 07/01/2008 :  13:02:11
Можно и без макросов. http://slil.ru/25947108 Страница с примером -два прямоугольника в группе.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 07/01/2008 :  15:37:48
И ведь работает... :)
А я про DoCmd вечно забываю :(
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 07/01/2008 :  17:38:17
Условия задачи не выполнены.
Секция Actions должна быть в группе, а не у ее членов, иначе задача тривиальна.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 07/01/2008 :  19:32:19
А такой вариант?
В ShapeSheet группы из секции Actions менять одну из двух ячеек (для каждого шейпа свою.
Например, SETF(GETREF(Scratch.X1), Now())
и SETF(GETREF(Scratch.Y1), Now())
А в членах группы настроиться на изменение своей ячейки по Dependson. Например, в одном - DoCmd(1048) + Dependson(Sheet.1!Scratch.X1), в другом - DoCmd(1048) + Dependson(Sheet.1!Scratch.Y1)
Go to Top of Page

Geosher

Russia
10 Posts

Posted - 07/02/2008 :  14:00:40
Вариант удаленного управления не получается. Чтобы отработало docmd фокус должен быть на шейпе иначе вызов docmd игнорируется.
Go to Top of Page

Geosher

Russia
10 Posts

Posted - 07/07/2008 :  08:26:37
После задумий по этому вопросу появилась идея. Делаем группу из двух шейпов. Поведение группы делаем на показ сначала компонентов, рамку выделения и иже сними из группы убираем. Тоже делаем для одного из шейпов, который назовем управляемым. Другой шейп (назовем его управляющим) настраиваем на управление свойствами и ячейками как группы, так и управляемым шейпом. Получаем возможность использования docmd. В решении есть конечно минусы, один в том, что рамка выделения как у связанного объекта.
Go to Top of Page

Geosher

Russia
10 Posts

Posted - 07/10/2008 :  10:36:25
Имеется реализованное решение. Статья об этом отправлена для размещения на сайте.
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 07/10/2008 :  15:32:45
Интересно будет посмотреть.
Хотя, я все больше склоняюсь к варианту с макросом.

Спасибо.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 07/10/2008 :  16:20:44
Статья в виде заархивированного вордовского файла
http://visio.artberg.ru/biblio/mshpdoc.zip
и собственно пример
http://visio.artberg.ru/biblio/mshpvsd.zip
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 07/11/2008 :  15:37:52
Да, решение оригинальное. Признаю, что начальные условия выполнены полностью.
К сожалению, есть один недостаток - если шейпов не два, а больше, то работать не будет. Вероятно, мне следовало изложить то, что мне нужно более подробно.
Нашел я одну очень интересную ссылку:
http://www.visguy.com/2008/06/25/free-isometric-piping-shapes-for-visio/#more-1015
Там, среди прочего есть неплохой набор простых псевдо-трехмерных шейпов. Мне захотелось несколько расширить их универсальность, благо библиотека полностью открыта и бесплатна.
В частности, я занялся кубом (параллелипипедом). После изучения внутренностей шейпа я понял, что проще нарисовать все с нуля (автор библиотеки - японец, его логику мне понять не дано), что и было сделано. Расширение функциональности я планировал по нескольким направлениям:
- управление формой не только контролами, но и свойствами (см. также ветку topic.asp@TOPIC_ID=2041.html)
- возможность получения не только "куба", но и "ящика", т.е. когда одна из граней отсутствует
- градиентные заливки граней для улучшения "видимости"
К сожалению, затык произошел на первом пункте, и в настоящее время у меня два разных шейпа - один с контролами,другой - со свойстами.
В принципе, если кому-то интересно, я могу поделиться, но вероятно, следует сделать другую ветку.
Опять же к сожалению, работа несколько затормозилась в связи с командировкой, поэтому я своим кубом уже давно не занимался, но постараюсь продолжить.

С уважением.
Go to Top of Page

Geosher

Russia
10 Posts

Posted - 07/14/2008 :  06:08:06
Тема с изометрией очень интересна. Можно было бы объединить усилия (мыло в профиле), если это вам интересно.
По переключению я думаю, что Bring to front/Send to в данном случае не применимы. Тут нужно управлять переключением видимая/невидимая грань на уровне геометрии. Правда я пока не совсем понимаю, как должна выглядеть фигура в различный ракурсах (как русуется объемная фигура в изометрии я конечно знаю, но не знаю как вам это видится). Может быть вы это нарисуете в векторном виде в нужных вариантах с заливками? И попытаемся решить.

С уважением, Георгий
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 07/17/2008 :  12:48:45
Прошу прощения. Я сейчас в командировке, отвечу чуть позже.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 07/24/2008 :  07:05:14
Варианты "куба" выложены на сайте.
http://visio.artberg.ru/store/test_3d.zip
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)