Author |
Topic |
|
grigory
Russia
4 Posts |
Posted - 12/19/2004 : 02:07:05
|
Подскажите пжлста,как сделать точку управления (желтый ромб)? |
|
Digitall
Russia
389 Posts |
Posted - 12/20/2004 : 10:14:05
|
quote: Originally posted by grigory
Подскажите пжлста,как сделать точку управления (желтый ромб)?
Создать соответствующий раздел в ТаблицеФигур (ShapeSheet). |
|
|
sars
17 Posts |
Posted - 05/30/2008 : 08:47:35
|
А можно подробнее описать процесс? Не понятно что такое таблица фигур. |
|
|
sars
17 Posts |
Posted - 05/30/2008 : 14:04:19
|
Предыдущий вопрос снимается. Разобрался :)
Другой вопрос: Можно ли фигуре назначить два тестовых поля и каждое тестовое поле перемещать с помощью точки/маркера управления?
Создать несолько точек/маркеров управления не проблема, а вот как добавить второе тестовое поле не знаю :( Может кто подскажет? |
|
|
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. Для второго текста - аналогично |
|
|
sars
17 Posts |
Posted - 06/02/2008 : 07:34:14
|
zhuravsky, спасибо. Есть еще маленький вопросик, после создания двух точек управления с текстовыми полями, нет возможности редактировать текст. Можно ли это поправить? |
|
|
zhuravsky
Russia
115 Posts |
Posted - 06/02/2008 : 08:41:27
|
Возможно, текст и редактируется: попробуйте кликнуть вашу группу, затем еще раз кликнуть на конкретном тексте и потом нажать F2, по идее после этого текст должен редактироваться.
Есть и другой подход - назначить группе атрибуты (свойства)и привязать их значения к вашим текстам, тогда можно будет изменять тексты с помощью стандартного окна Shape\Custom Properties.
Если бы вы описали по-подробнее, что вам необходимо в итоге, то было бы яснее. Быть может, задачу можно решить совсем по-другому. |
|
|
sars
17 Posts |
Posted - 06/02/2008 : 09:27:35
|
Да действительно по F2 редактируется. Но результат не совсем тот чего бы хотелось...
Опишу поподробнее. Есть картинка в PowerPoint (DSLAM) http://slil.ru/25854979. По умолчанию у нее только одно текстовое поле без точки управления. Задача 1: создать у картинки точку управления. Т.е. сделать фигуру аналогичную, например фигуре маршрутизатор. С данной задачей я справился самостоятельно. Задача 2: Возникло желание добавить еще одно тестовое поле с другой точкой управления. Саму точку управления я добавить могу. Но вот привязать к нему еще одно текстовое поле не получается. При этом хотелось бы, чтоб по двойному щелчку по фигуре для редактирования открывалось сразу два текстовых поля. Выше предложзенный вариант, частично решает эту задачу, но не в полной мере.
P.S. Пользуюсь Visio 2007 |
|
|
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. Тестируем.
Для упрощения из этой последовательности выкинуты некоторые маленькие хитрости, не влияющие на функциональность. Я тут набросал пример, могу прислать. |
|
|
sars
17 Posts |
Posted - 06/03/2008 : 07:48:41
|
В ссылке была лишняя точка. Вот правильная - http://slil.ru/25854979 У меня русская версия, поэтому есть трудности Shape\Custom properties - это тоже самое что и меню Данные/Данные фигуры (в 2007)?
В 3-м пункте какую формулу нужно писать? 4-й пункт тоже не понятен...
Можно поподробнее описать для чайников :)
Сорри, за вопросы так глубоко visio не знаю. Пример вышли плиз на polipych@yandex.ru
|
|
|
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, так что... |
|
|
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. Где можно почитать про приминение формул? Огромное спасибо за помощь! |
|
|
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) видится более универсальным решением.
Хотя, если очень надо...
Кстати, на этом сайте в секции "Загрузка" есть много интересных и порой нетривиальных шейпов, посмотрите - это хорошие примеры разработки шейпов. |
|
|
zhuravsky
Russia
115 Posts |
Posted - 06/03/2008 : 18:27:07
|
P.S. Про формулы можно прочитать в хелпе, там же есть и примеры. Также рекомендую раздел "Библиотека" на этом сайте, на начальном этапе те статьи мне сильно помогли, за что авторам отдельное спасибо. |
|
|
|
Topic |
|
|
|