All Forums
 Категория Visio
 Форум Вопросы и ответы
 точка управления
Author Previous Topic Topic Next Topic  

grigory

Russia
4 Posts

Posted - 12/19/2004 :  02:07:05
Подскажите пжлста,как сделать точку управления (желтый ромб)?

Digitall

Russia
389 Posts

Posted - 12/20/2004 :  10:14:05  Visit Digitall's Homepage
quote:
Originally posted by grigory

Подскажите пжлста,как сделать точку управления (желтый ромб)?


Создать соответствующий раздел в ТаблицеФигур (ShapeSheet).
Go to Top of Page

sars

17 Posts

Posted - 05/30/2008 :  08:47:35
А можно подробнее описать процесс? Не понятно что такое таблица фигур.
Go to Top of Page

sars

17 Posts

Posted - 05/30/2008 :  14:04:19
Предыдущий вопрос снимается. Разобрался :)

Другой вопрос:
Можно ли фигуре назначить два тестовых поля и каждое тестовое поле перемещать с помощью точки/маркера управления?

Создать несолько точек/маркеров управления не проблема, а вот как добавить второе тестовое поле не знаю :( Может кто подскажет?
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 05/31/2008 :  17:21:08
Необходимо создать группу, добавить в ней "точки управления", привязать к точкам управления координаты членов группы. Постараюсь описать процесс по пунктам:
1. Создаем два текстовых шейпа с помощью соответствующего инструмента
2. Группируем их
3. Открываем шейп-шит группы (Важно! именно группы, а не ее членов)
4. Добавляем секцию Control и две "точки управления"
5. Теперь выбираем одного из членов группы и открываем его шейп-шит
6. В ячейках, описывающих координаты пишем что-нибудь такое:
guard(Sheet.1!controls.x1) - это для коррдинаты X
guard(Sheet.1!controls.y1) - это для коррдинаты Y
7. Тестируем
8. Для второго текста - аналогично
Go to Top of Page

sars

17 Posts

Posted - 06/02/2008 :  07:34:14
zhuravsky, спасибо. Есть еще маленький вопросик, после создания двух точек управления с текстовыми полями, нет возможности редактировать текст. Можно ли это поправить?
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 06/02/2008 :  08:41:27
Возможно, текст и редактируется:
попробуйте кликнуть вашу группу, затем еще раз кликнуть на конкретном тексте и потом нажать F2, по идее после этого текст должен редактироваться.

Есть и другой подход - назначить группе атрибуты (свойства)и привязать их значения к вашим текстам, тогда можно будет изменять тексты с помощью стандартного окна Shape\Custom Properties.

Если бы вы описали по-подробнее, что вам необходимо в итоге, то было бы яснее. Быть может, задачу можно решить совсем по-другому.
Go to Top of Page

sars

17 Posts

Posted - 06/02/2008 :  09:27:35
Да действительно по F2 редактируется. Но результат не совсем тот чего бы хотелось...

Опишу поподробнее. Есть картинка в PowerPoint (DSLAM) http://slil.ru/25854979. По умолчанию у нее только одно текстовое поле без точки управления.
Задача 1: создать у картинки точку управления. Т.е. сделать фигуру аналогичную, например фигуре маршрутизатор.
С данной задачей я справился самостоятельно.
Задача 2:
Возникло желание добавить еще одно тестовое поле с другой точкой управления. Саму точку управления я добавить могу. Но вот привязать к нему еще одно текстовое поле не получается. При этом хотелось бы, чтоб по двойному щелчку по фигуре для редактирования открывалось сразу два текстовых поля.
Выше предложзенный вариант, частично решает эту задачу, но не в полной мере.

P.S. Пользуюсь Visio 2007
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 06/02/2008 :  17:29:42
Картинку посмотреть не удалось, но задача в общем понятна.
Я бы поступил следующим образом:
1. Берем ваш маршрутизатор, группируем его (пусть он будет пока один в группе);
2. Назначаем группе два атрибута (Shape\Custom properties), для примера назовем их Text1 и Text2;
3. Добавляем два контрола (см. выше по теме);
3. Теперь осталось только как-нибудь отобразить атрибуты. Здесь возможны варианты, предлагаю самый незамысловатый - рисуем два текста, привязываем их к атрибутам (Insert\Field\Custom formula - для каждого из текстов), включаем их в группу (Shape\Groupping\Add to group);
4. Привязываем положение текстов к контролам группы;
5. В секции Events, ячейка EventDblClick пишем волшебную команду DoCmd(1312);
5. Тестируем.

Для упрощения из этой последовательности выкинуты некоторые маленькие хитрости, не влияющие на функциональность.
Я тут набросал пример, могу прислать.
Go to Top of Page

sars

17 Posts

Posted - 06/03/2008 :  07:48:41
В ссылке была лишняя точка. Вот правильная - http://slil.ru/25854979
У меня русская версия, поэтому есть трудности Shape\Custom properties - это тоже самое что и меню Данные/Данные фигуры (в 2007)?

В 3-м пункте какую формулу нужно писать?
4-й пункт тоже не понятен...

Можно поподробнее описать для чайников :)

Сорри, за вопросы так глубоко visio не знаю.
Пример вышли плиз на polipych@yandex.ru
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 06/03/2008 :  09:42:38
п.3: Я использую такую формулу
if(formulaexists(sheet.1!prop.text1),sheet.1!prop.text1,"")
соответственно для второго текста все тоже самое, только заменить terx1 на text2
п. 4. см. предыдущие посты - там все есть.
Пример скачал, посмотрю позже, но у меня Визио 2003, так что...
Go to Top of Page

sars

17 Posts

Posted - 06/03/2008 :  13:31:56
Спасибо, разобрался. Практически то, что нужно за исключением пары нюансов:
1. Текстовые поля остаются неизменной длинны, т.е. если в строке умещается три символа, четвертый перескакивает на следующую строку.
2. Если добавить текстовые поля символов на 20, то у основной фигуры в этом случае получается очень широкая рамка выравнивания(зеленый пунктир с квадратиками).
3. При двойном клике открывается окно - данные фигуры, где можно отредактировать все подписи. В принципе штука удобная, но если есть возможность, то хотелось бы получить реализацию как у стандартных фигур. Т.е. кликнул и тестовое(ые) поле(я) становится активным для ввода текста.
Хотя этот пункт и не критичен.

P.S. То что у меня получилось можно посмотреть тут - http://slil.ru/25859470
Там же для большего понимания 3-го пункта есть фигура Router, кликнув на нее можно увидеть как редактируется подпись. Вот хотелось бы не одну подпись, а две и более.
P.P.S. Кстати там же есть модернизированная картинка DSLAM, у которой по аналогии c Router одну подпись мне удалось сделать.
P.P.P.S. Где можно почитать про приминение формул?
Огромное спасибо за помощь!
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 06/03/2008 :  18:23:57
по п.1 - посмотрите функции TextWidth и TextHeight, если их прописать в ячейках TxtWidth и TxtHeight секции TextTransform, то получится именно то,что нужно - ширина текста будет автоматически подстраиваться под вводимый текст (как-то так: TextWidth(TheText), TextHeight(TheText, TxtWidth)).
п. 2 - у группы в секции Protection есть параметр LockCalcWH. Если установить его в 1, то размеры группы не пересчитываются при добавлении новых членов, т.е. зеленая рамка будет там где вам надо. Только нужно заранее продумывать каким будет ваш шейп. Т.е. нарисовали шейп, залочили его, а потом добавили тексты, размеры будут как будто текстов и нет вовсе;
п. 3 - скорее всего не получиться. Тут дело во внутренней идее Визио: все базовые шейпы, по сути дела, есть одно и то же - прямоугольники. Где-то закрашенные, где-то нет, где-то с текстом, где-то нет, где-то просто текст без прямоугольника и т.п.
Смысл в том, что каждый шейп по умолчанию имеет некий текст. Именно он открывается на редактирование по F2. НО! этот текст только ОДИН, он может быть в том числе и многострочным, но как объект - он один. А вам нужно два (это сегодня, а завтра вы поймете, что их нужно три, четыре и т.д.), поэтому окошко по docmd(1312) видится более универсальным решением.

Хотя, если очень надо...

Кстати, на этом сайте в секции "Загрузка" есть много интересных и порой нетривиальных шейпов, посмотрите - это хорошие примеры разработки шейпов.
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 06/03/2008 :  18:27:07
P.S. Про формулы можно прочитать в хелпе, там же есть и примеры. Также рекомендую раздел "Библиотека" на этом сайте, на начальном этапе те статьи мне сильно помогли, за что авторам отдельное спасибо.
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)