Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 28 мар 2024, 13:14

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 19 сен 2016, 13:25 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Tumanov писал(а):
Кстати, я совсем не хочу сказать, что метод с заливкой плох.
не бывает, хороших и плохих методов. скорее бывает не лучший вариант применение какого-то метода в каком-то конкретном случае Изображение
Tumanov писал(а):
А то получается, как будто я против него возражаю :)
поговорка гласит: в спорах рождается истина!
Tumanov писал(а):
Так что описать его поподробнее точно было бы полезно.
обязательно опишу, как появится достаточно времени

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 19 сен 2016, 23:45 
Не в сети

Зарегистрирован: 18 сен 2016, 11:54
Сообщений: 6
Использую Visio c: 2016
Уровнь квалификации: VBA
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate
Ваш пример показался мне довольно интересным. Но, почитав вашу переписку здесь и подумав, взвесив все за и против, я пришел к выводу что самым оптимальным и простым решением в моём случае будет - создать заголовок с одним контактом и одиночный контакт отдельными фигурами. А во время отрисовки схемы просто перетаскивать их в нужном количестве. Это даст даже большую гибкость при отрисовке схемы, чем создавать соединитель одной фигурой - при необходимости можно перетаскивать и двигать секции как угодно.
В любом случае, спасибо за вашу дискуссию, без неё мой вывод мог бы не родиться!:)
Ещё я не очень понял, что есть такое Pattern? (интуитивно я понял, что это что-то связанное с темами оформления)
И ещё попутно появилось пара простых (для вас) вопросов:
1 - Можно ли как-то задать (в шейплисте, например), чтобы при перетаскивании из трафарета, фигура автоматически уходила на задний (или передний) план?
2 - Я создал упрощенное обозначени соединителя, получается, что соединительная линия, идущая от него, должна уходить от точки присоединения внутрь фигуры.
Вот так:
Изображение
Но когда я пытаюсь провести эту линию, она норовит обогнуть мою фигуру вот так:
Изображение
Изображение
И если даже я силой её направлю куда надо, то потом если нажать "Восстановить соединительную линию" она всё равно изогнется вокруг.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 20 сен 2016, 00:55 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
А стрелочки на конце удобнее не рисовать линиями, а использовать Format / Line End. Там есть несколько образцов. И размеры их можно менять. И ведут они себя правильно.
Pattern - образец. Бывают образцы: линий, заливки, наконечников линий. Есть штатный набор и можно рисовать свои.
В частности Surrogate для прорисовки внутренних линий сделал свой (полосатый) образец заливки.
И последнее - при перетаскивании порядок отображения не изменяется. При добавлении шейпа он всегда становится верхним. Шейп-листом это не управляется. Но можно отследить событие перетаскивания (или добавления), событием запустить макрос, а уже макрос может изменить порядок отображения шейпа.
В том числе есть события, запускаемые из шейп-листа. Одно из них - EventXFMod (секция Events) - возникает при перемещении шейпа.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 20 сен 2016, 00:55 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
fgarfield писал(а):
Ещё я не очень понял, что есть такое Pattern?
как раз с темами не связано!
fgarfield писал(а):
Ещё я не очень понял, что есть такое Pattern?
Pattern по-английски "образец". В данном контексте речь шла о Fill pattern (пользовательской заливке) фигуры. небольшое видео как ее создать (пользовательскую заливку)
Встроенное видео спрятано под спойлер ↓ Прямая ссылка на видео
Спойлер:
phpBB [youtube]
fgarfield писал(а):
Можно ли как-то задать (в шейплисте, например), чтобы при перетаскивании из трафарета, фигура автоматически уходила на задний (или передний) план?
можно, нужно в секции Events, в ячейке EventDrop написать одну из формул
Prodigitall писал(а):
DOCMD(1045) - shape>bring forward
DOCMD(1046) - shape>bring to front
DOCMD(1047) - shape>send backward
DOCMD(1048) - shape>send to back

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

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 20 сен 2016, 08:12 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Цитата:
как работает динамический коннектор известно только индийским богам

Я так понял, что в данном случае проблема не между коннектором и другим шейпом, а в самом коннекторе. Как правильно оформить его стрелочкой.
Цитата:
DOCMD(1045)

И таки да, вместо написания макроса иногда можно использовать вызов штатной команды. Это я упустил.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 20 сен 2016, 08:28 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
fgarfield писал(а):
Но когда я пытаюсь провести эту линию, она норовит обогнуть мою фигуру

попробовал нарисовать стрелку двумя линиями, сгруппировал - коннектор не огибает.
а если две линии стрелки объединить в 2D фигуру, то конечно коннектор будет огибать. но можно выставить в св-вах фигуры не огибать ее коннектором.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 20 сен 2016, 09:29 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
fgarfield писал(а):
создать заголовок с одним контактом и одиночный контакт отдельными фигурами. А во время отрисовки схемы просто перетаскивать их в нужном количестве. Это даст даже большую гибкость при отрисовке схемы, чем создавать соединитель одной фигурой - при необходимости можно перетаскивать и двигать секции как угодно.
имеется в виду отдельная фигура заголовок и для каждой строки "массива" отдельная фигура ?
тогда придется это все каждый раз группировать и разгруппировывать (если будет фигур около 100, т.к. точки коннекта фигур держат около 20 40 фигур максимум, дальше при попытке передвинуть всю конструкцию она рассыпается). сразу хочу за это предупредить !

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 20 сен 2016, 10:59 
Surrogate писал(а):
можно, нужно в секции Events, в ячейке EventDrop написать одну из формул

Большое спасибо! отличное решение!


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 21 сен 2016, 12:14 
Не в сети

Зарегистрирован: 18 сен 2016, 11:54
Сообщений: 6
Использую Visio c: 2016
Уровнь квалификации: VBA
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate
Да, для каждой строки отдельная фигура
Но я не очень понял, что Вы имели ввиду - их не обязательно группировать вместе. А точка коннекта - одна для одной строки.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 21 сен 2016, 12:24 
Не в сети

Зарегистрирован: 18 сен 2016, 11:54
Сообщений: 6
Использую Visio c: 2016
Уровнь квалификации: VBA
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Коллеги, назрел ещё один интересный вопрос:)
Я пытаюсь сделать так, чтобы при изменении текста прямоугольника, если этот текст шире чем рамка прямоугольника, чтобы он сжимался по ширине, чтобы поместиться в прямоугольник целиком. (уменьшался именно не размер текста, а масштаб по ширине - scale).
И текст в фигуре должен быть однострочным - для примера см. любые поля в ЕСКДшной рамке по ГОСТУ
Я наваял такой код:
Код:
Private Sub Document_ShapeExitedTextEdit(ByVal shp As IVShape)

    shp.Characters.CharProps(visCharacterFontScale) = 100
    If shp.Cells("Char.FontScale") > shp.Cells("width") Then
        shp.Characters.CharProps(visCharacterFontScale) = shp.Cells("width") / shp.Cells("User.WD") * 100
    End If

End Sub

Он работает отлично - НО только в режиме отладки... При работе в реальном времени он даёт сбой. Я так понимаю - это связано с тем, что поля шейпшита, на которые ссылается этот код, не успевают обновляться должным образом. Кстати, если, например, вставить строку
Код:
Msgbox "xxx"

Перед строкой
Код:
shp.Characters.CharProps(visCharacterFontScale) = shp.Cells("width") / shp.Cells("User.WD") * 100

,то после нажатия на ОК мэсседжбокса, всё работает, как надо (видимо, когда вылезает msgbox, поля обновляются, как надо)

И ещё- должен сказать, сначала я пытался обойтись без VBA, просто вставил аналогичную формулу в поле Scale шейпшита. И работала она примерно так же плохо


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 21 сен 2016, 12:41 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Кажется это уже было в форуме


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 21 сен 2016, 12:47 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
fgarfield писал(а):
А точка коннекта - одна для одной строки.
вообще то точки должно быть две. одной она клеится к предыдущей фигуре, к второй точке будет клеиться последующая
Изображение
fgarfield писал(а):
Но я не очень понял, что Вы имели ввиду - их не обязательно группировать вместе.

Изображение
если прилепить к фигуре еще 39 других и ее подвигать, поедут все. а если добавить больше, будут ездить только 39 последующих. никак не более!

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 21 сен 2016, 13:02 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
fgarfield писал(а):
Я пытаюсь сделать так, чтобы при изменении текста прямоугольника, если этот текст шире чем рамка прямоугольника, чтобы он сжимался по ширине, чтобы поместиться в прямоугольник целиком. (уменьшался именно не размер текста, а масштаб по ширине - scale).
ага.
Tumanov писал(а):
Кажется это уже было в форуме
только было как это сделать в shapesheet
Kaerius в сообщении #4140 писал(а):
Играя с масштабом надписи подгоняем её под размер рамки.
Код:
SETF("Char.FontScale",100%)+SETF("Char.FontScale",(ROUND((100%/(TEXTWIDTH(TheText)/Width)),1)))

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 21 сен 2016, 15:01 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Цитата:
только было как это сделать в shapesheet

Ну так, в ShapeSheet это даже лучше... :)
Только эта формула короткий текст растягивает. Так что лучше добавить MIN(100%,...
Код:
=SETF("Char.FontScale",100%)+SETF("Char.FontScale",MIN(100%,(ROUND((100%/(TEXTWIDTH(TheText)/Width)),1))))

И при ненулевых отступах текстового блока при большом сжатии начинает ошибаться. Лучше отступы ставить нулевыми или хотя бы не более 1 pt.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 23 сен 2016, 03:20 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Tumanov писал(а):
Так что описать его поподробнее точно было бы полезно
ну примерно так.
Встроенное видео спрятано под спойлер ↓ Прямая ссылка на видео
Спойлер:
phpBB [youtube]

хоть топик-стартеру это не интересно

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 23 сен 2016, 09:26 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
Surrogate
классный видос! спасибо. интересный метод :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 24 сен 2016, 18:52 
Не в сети

Зарегистрирован: 18 сен 2016, 11:54
Сообщений: 6
Использую Visio c: 2016
Уровнь квалификации: VBA
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate
Присоединяюсь, отличный видос - приятно смотреть и слушать! А новичкам вроде меня всегда полезно посмотреть, как работает профи, даже если конечная цель работы пока не интересна.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB