Author |
Topic  |
|
talanovn
3 Posts |
Posted - 05/03/2010 : 16:26:54
|
Заранее извиняюсь за возможно глупые вопросы, но все таки... Хотелось бы при вставке текста в любую фигуру блок-схемы добиться синхронного изменения размера фигуры в соответствии с количеством строк вводимого текста и избежать вот этого (Визио 2007):

Есть ли простое решение этому? Нашел кое что про TEXTHEIGHT и TEXTWIDTH (topic.asp@TOPIC_ID=2235.html), но по неопытности с Визио, не знаю как это применить. Может быть можно создать свой шаблон фигур с уже встроенной такой функцией? Может быть есть мануал по этой теме?
Спасибо. |
|
Tumanov
Russia
1198 Posts |
Posted - 05/03/2010 : 16:59:54
|
В Visio каждый шейп содержит лист с формулами, которые описывают все его поведение. Это называется шейп-лист (ShapeSheet). Где-то кажется это называли "таблицей фигур" или "таблицей фигуры" :( Для получения нужного поведения достаточно в одну из ячеек таблицы вписать нужную формулу. В данном случае делается так: селектировать шейп; выполнить Window / Show ShapeSheet найти секцию Shape Transform и в ней ячейку Height вписать в нее формулу =GUARD(TEXTHEIGHT(TheText,TxtWidth)) нажать "Enter", все закрыть и смотреть результат. Этот шейп можно сохранить в трафарете в качестве мастера и пользоваться им и в других рисунках. Читать статьи на этом сайте, например, http://visio.artberg.ru/biblio/st003.htm
|
 |
|
talanovn
3 Posts |
Posted - 05/03/2010 : 20:01:31
|
Tumanov
Большое спасибо. Просветили. Все получилось.  |
 |
|
talanovn
3 Posts |
Posted - 05/04/2010 : 12:34:29
|
Tumanov
Извините, а не в курсе, возможно ли решить более сложную задачу: чтобы каскад из нескольких фигур, соединенных стрелочками, не только менял высоту (ширину), но и передвигался вверх (вниз) в зависимости от количества введенного текста в одной фигуре (такая фишка точно есть в SmartDraw причем автоматически).

Спасибо. |
 |
|
Tumanov
Russia
1198 Posts |
Posted - 05/04/2010 : 15:22:49
|
Конечно можно, но здесь уже без макросов не обойдешься. Если бы речь шла только о двух-трех заранее известных шейпах, то можно и без макросов. Но Вас ведь наверное интересует более общий случай. А с макросами алгоритм примерно такой: обрабатывается событие изменения шейпа (при изменении размеров он будет перемещаться), обработчик считывает размеры и координаты присоединенных шейпов, те, которые ниже, двигает вверх или вниз в зависимости от произошедшего изменения размеров. |
 |
|
|
Topic  |
|
|
|