Скрытие элемента массива

Обсуждение, связанное с разработкой ПО верхнего уровня
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Скрытие элемента массива

Сообщение mzu2006 »

Свойтство visible - это элемент оформления контрола. Оформление у всех элементов массива контролов (индикаторов) - одинаковое. Что делать? Оформить контролы как индивидуальные. Завести массив ссылок, с которым уже обращаться как с массивом (см, например, http://labviewportal.org/viewtopic.php?p=44197#p44197)
Аватара пользователя
Mifodiy1977
beginner
beginner
Сообщения: 47
Зарегистрирован: 10 янв 2012, 14:00
Версия LabVIEW: 11
Контактная информация:

Re: Скрытие элемента массива

Сообщение Mifodiy1977 »

Если нужно скрывать для оформления, то можно сделать массив кластеров, в каждом из которых кроме полезной информации (контрола) положить на самый верх самодельную кнопку, в одном состоянии она будет окрашена в цвет фона массива, а в другом прозрачна, эту кнопку надо задизейблить, чтоб в закрытом состоянии она не пускала к контролу и сама не переключалась. И структура массива сохранитя и будет видимость скрытия элемента. Причем можно сделать еще хитрее, в одно состоянии "шторки положить элемент декорации с заливкой, а в другой рамку, тогда в открытом состоянии ячейку еще и можно будет редактировать совершенно обычным способом :) Извиняюсь, что так поздно ответил, просто может кому пригодится. Вот пример
Вложения
Шторка.vi
(15.86 КБ) 150 скачиваний
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Скрытие элемента массива

Сообщение Borjomy_1 »

Есть проблема в том, что если включен автошкалинг, при изменении размеров формы все разъедется. Причем при работе приложения.
Аватара пользователя
Mifodiy1977
beginner
beginner
Сообщения: 47
Зарегистрирован: 10 янв 2012, 14:00
Версия LabVIEW: 11
Контактная информация:

Re: Скрытие элемента массива

Сообщение Mifodiy1977 »

У меня, кстати, ничего не разъезжается (по крайней мере в lv 2012). Вот какой смысл в этом автосайзе? В нем вообще все уродуется. Ккакой смысл, если шрифты остаются те же, а все кнопки искажаются. Это какая-то не очень полезная функция
Аватара пользователя
Mifodiy1977
beginner
beginner
Сообщения: 47
Зарегистрирован: 10 янв 2012, 14:00
Версия LabVIEW: 11
Контактная информация:

Re: Скрытие элемента массива

Сообщение Mifodiy1977 »

И почему должно "Разъехаться"? Все составляющие кластера также будут смещаться и масштабироваться как и все остальное. Так что проблемы никакой нет
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Скрытие элемента массива

Сообщение Borjomy_1 »

Автосшкалинг нужен если приложение работает на оборудовании с различными диагоналями мониторов. Если приложение на одном рабочем месте, то тогда действительно, никаких проблем
Аватара пользователя
Mifodiy1977
beginner
beginner
Сообщения: 47
Зарегистрирован: 10 янв 2012, 14:00
Версия LabVIEW: 11
Контактная информация:

Re: Скрытие элемента массива

Сообщение Mifodiy1977 »

Если приложение разработано для большого монитора, то уменьшить для маленького не выйдет, а еще есть такое понятие, как пропорции Разные мониторы - разные пропорции 16:9, 16:10, 3:4. Все будет гнуться и искажаться. Замечательно, что такая функция есть, но далеко не всегда ее можно применить. Но, насчет моего примера, разве у вас что-то разъезжается при масштабировании? Я разворачивал на 1920х1080, пропорции погнулись, но сам массив принципиально не изменился, увеличились расстояния между ячейками. Это вы называете "разъехалось"?
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Скрытие элемента массива

Сообщение Borjomy_1 »

В общем, проблем со взаимным расположением элементов в кластере - выше крыши. Это и масштабирование и изменение тайпдефа и изменение размеров компонентов при запуске приложения на машинах с разными системными шрифтами и некратными размерами этих шрифтов. При разработке - размеры могут быть одинаковыми, а на собранном приложении - разбегается. Другое дело, что можно запас заложить....

Кстати, что это за компонент? Вы сами дорабатывали? Простая кнопка не дает возможности устанавливать фокус на компоненты за ней.
Аватара пользователя
Mifodiy1977
beginner
beginner
Сообщения: 47
Зарегистрирован: 10 янв 2012, 14:00
Версия LabVIEW: 11
Контактная информация:

Re: Скрытие элемента массива

Сообщение Mifodiy1977 »

Это моё открытие :) Случайно нашел, что картинка внутренней лабвьюшной графики типа рамка (то есть без фона) в качестве состояния кнопки не загораживает элементы за кнопкой, причем, если в противоположное состояние засунуть картинку растровой графики, пусть даже просто прозрачный фон, то элементы за кнопкой будут недоступны, этакая альтернатива дизейбла, невидимости и прочих надобностей :) Реально применяю, иногда без этого никак. Особенно когда работаешь с массивом кластеров, в котором надо обрабатывать событие на внутренних элементах вложенного в массив кластера, но только в определенной ячейке массива. Делаю редактор сценария для управления сценической механикой. Тайм линия из кадров, кадры с параметрами, тыкаешь пальцем - выбираешь кадр, потом в том же кадре тыкаешь пальцем - меняешь содержимое, причем содержимое - просто картинки да тексты, а меняется реально сценарий, в котором числа, да булевы. В кадрах есть и анимация в том числе. В общем, извините за выражение, полная жопа. Такие вещи на лабвью лучше не делать. Но у меня безвыходная ситуация, я больше никаких языков не разумею :)
Если интересно, могу выложить проект для ознакомления. Стратегической ценности он не представляет
Аватара пользователя
Mifodiy1977
beginner
beginner
Сообщения: 47
Зарегистрирован: 10 янв 2012, 14:00
Версия LabVIEW: 11
Контактная информация:

Re: Скрытие элемента массива

Сообщение Mifodiy1977 »

Один комп управляет 23 механизмами по canopen, сценическим кругом по 485 протоколу modbus, плюс дискретные входы выходы. И всё это по ethernet через различные шлюзы и модули. То есть комп подключен к оборудованию одним шнурком Ethernet (или вай фай, что не рекомендуется мною)
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Скрытие элемента массива

Сообщение Borjomy_1 »

Эту рамку надо скинуть куда-нибудь в соответствующую тему, либо создать в разделе "Лицевая панель"
Аватара пользователя
Mifodiy1977
beginner
beginner
Сообщения: 47
Зарегистрирован: 10 янв 2012, 14:00
Версия LabVIEW: 11
Контактная информация:

Re: Скрытие элемента массива

Сообщение Mifodiy1977 »

Хорошо, как будет время.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Лицевая панель»