All Forums
 Категория Visio
 Форум Вопросы и ответы
 Текст внутри блок-схемы
Author Previous Topic Topic Next 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
Go to Top of Page

talanovn

3 Posts

Posted - 05/03/2010 :  20:01:31
Tumanov

Большое спасибо. Просветили. Все получилось.
Go to Top of Page

talanovn

3 Posts

Posted - 05/04/2010 :  12:34:29
Tumanov

Извините, а не в курсе, возможно ли решить более сложную задачу: чтобы каскад из нескольких фигур, соединенных стрелочками, не только менял высоту (ширину), но и передвигался вверх (вниз) в зависимости от количества введенного текста в одной фигуре (такая фишка точно есть в SmartDraw причем автоматически).



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

Tumanov

Russia
1198 Posts

Posted - 05/04/2010 :  15:22:49
Конечно можно, но здесь уже без макросов не обойдешься.
Если бы речь шла только о двух-трех заранее известных шейпах, то можно и без макросов. Но Вас ведь наверное интересует более общий случай.
А с макросами алгоритм примерно такой: обрабатывается событие изменения шейпа (при изменении размеров он будет перемещаться), обработчик считывает размеры и координаты присоединенных шейпов, те, которые ниже, двигает вверх или вниз в зависимости от произошедшего изменения размеров.
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)