Форум пользователей Visio http://visio.getbb.ru/ |
|
Кнопки переключения слоев http://visio.getbb.ru/viewtopic.php?f=29&t=987 |
Страница 1 из 1 |
Автор: | yanooks [ 13 июл 2016, 17:47 ] |
Заголовок сообщения: | Кнопки переключения слоев |
Добрый день! Имеется схема коммутации серверной стойки, к примеру в стойке установлено 6 приборов, от прибора "1" (главный прибор) проложены соединительные линии к прибору "2" (вынесено на слой 1). Линии соединения прибора "1" с прибором "3" вынесены на слой 2 и т.д. Задача: вынести на лист кнопки по активации которых происходило включение и отключение видимости слоев 1,2,3,.... Управление слоями через меню "Свойства слоя" не удобное и не информативное, возможно решить такую задачу? подскажите как или пните в нужном направлении. Спасибо! |
Автор: | Tumanov [ 13 июл 2016, 19:20 ] |
Заголовок сообщения: | Re: Кнопки переключения слоев |
Цитата: ...Управление слоями через меню "Свойства слоя" не удобное и не информативное... То есть галочки нужно заменить на кнопочки? Или я чего-то не понял. В принципе, чтобы включить-выключить слой нужна одна команда. Типа такой. Код: ActivePage.Layers(1).CellsC(4) = True Нажатие кнопки может вызывать макрос, который и выполнит нужное действие. Дальше все зависит от того, сколько у Вас слоев, как Вы будете сопоставлять кнопки и слои при изменении их количества и т.д. |
Автор: | Tumanov [ 13 июл 2016, 19:25 ] |
Заголовок сообщения: | Re: Кнопки переключения слоев |
Кстати, уже был аналогичный вопрос. viewtopic.php?f=6&t=973 |
Автор: | Shishok [ 13 июл 2016, 19:28 ] | ||
Заголовок сообщения: | Re: Кнопки переключения слоев | ||
Так что - ли?
|
Автор: | yanooks [ 13 июл 2016, 19:47 ] |
Заголовок сообщения: | Re: Кнопки переключения слоев |
Shishok писал(а): Так что - ли? Именно так. А если еще расскажите как сделать вообще отлично будет))) |
Автор: | Shishok [ 13 июл 2016, 21:37 ] |
Заголовок сообщения: | Re: Кнопки переключения слоев |
Ну как - то так: Индекс нужного слоя (то что в примере исправлено на - 10), смотреть в Shapesheet листа. |
Автор: | Shishok [ 13 июл 2016, 21:44 ] |
Заголовок сообщения: | Re: Кнопки переключения слоев |
А лучше код в файле заменить на такой: Код: Option Explicit
Private Sub CommandButton1_Click() Call On_Off_Layers(1) End Sub Private Sub CommandButton2_Click() Call On_Off_Layers(2) End Sub Private Sub CommandButton3_Click() Call On_Off_Layers(3) End Sub Private Sub On_Off_Layers(arg) Dim vsoLayer As Visio.Layer Set vsoLayer = Application.ActiveWindow.Page.Layers.Item(arg) With vsoLayer.CellsC(visLayerVisible) If .FormulaU = "1" Then .FormulaU = "0" Else .FormulaU = "1" End If End With End Sub |
Автор: | Surrogate [ 14 июл 2016, 03:40 ] |
Заголовок сообщения: | Re: Кнопки переключения слоев |
Вопрос задан в ветке Общие вопросы, таким образом предполагает ответ - как сделать это штатными средствами! Штатными средствами - только через это меню Цитата: ...Управление слоями через меню "Свойства слоя" не удобное и не информативное... полученные ответы, уместны в ветке Программирование!не первый пользователь задает подобные вопросы и мечтает плодить сущности (квадратики или кнопочки) без крайней на то необходимости (IMHO)! Рассказали бы хоть, чем меню не удобно? Потом, чем не информативно? |
Автор: | Surrogate [ 18 июл 2016, 13:24 ] |
Заголовок сообщения: | Re: Кнопки переключения слоев |
Surrogate писал(а): Рассказали бы хоть, чем меню не удобно? Потом, чем не информативно? просто хочется получить аргументированный ответ !
|
Автор: | Shishok [ 18 июл 2016, 19:26 ] |
Заголовок сообщения: | Re: Кнопки переключения слоев |
Для удобства можно вынести кнопку на панель быстрого доступа. Только выносить надо не кнопку Слой, а кнопку Свойства слоя. |
Автор: | Alex_ST [ 14 ноя 2016, 17:54 ] |
Заголовок сообщения: | Re: Кнопки переключения слоев |
Shishok писал(а): With vsoLayer.CellsC(visLayerVisible) If .FormulaU = "1" Then .FormulaU = "0" Else .FormulaU = "1" End If End With Похоже, что не обязательно указывать свойство .FormulaU Достаточно написать простую логическую инверсию: Код: vsoLayer.CellsC(visLayerVisible) = Not(vsoLayer.CellsC(visLayerVisible))
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |