Список форумов   Список форумов  

Отделиить блок-диаграмму от фронт-панели

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

Отделиить блок-диаграмму от фронт-панели

Сообщение Зинка » Пн июн 22, 2009 3:19 pm

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

А я постоянно делаю новые версии с новыми возможностями (не уничтожая старых).
Можно как-то сохранить 2 разных интерфейса про одной блок-диаграмме ?
Зинка
 

Re: Отделиить блок-диаграмму от фронт-панели

Сообщение IvanLis » Пн июн 22, 2009 7:27 pm

Зинка писал(а):Можно как-то сохранить 2 разных интерфейса про одной блок-диаграмме ?


создать ini файл, из которого при загрузке программы будут загружаться различные профили с настройками интерфейса по выбору пользователя
Знание нескольких принципов освобождает от знания многих фактов!

Живу я здесь ||| LabVIEW Portal in Google+
IvanLis
Специалист LabVIEW
 
Сообщений: 497
Зарегистрирован: Пн апр 23, 2007 1:44 pm
Откуда: СССР

Сообщение Зинка » Вт июн 23, 2009 4:18 pm

Извините, не нашла. :oops:
Смотрела в хелпе "Creating Configuration Files", но это - видимо не то.
Или я не поняла, как это применить.
Пожалуйста, подскажите поподробнее, как это называется или где взять пример.
Зинка
 

Сообщение IvanLis » Чт июн 25, 2009 10:03 pm

Зинка писал(а):Извините, не нашла. :oops:
Смотрела в хелпе "Creating Configuration Files", но это - видимо не то.
Или я не поняла, как это применить.
Пожалуйста, подскажите поподробнее, как это называется или где взять пример.


я может выразился не совсем понятно, кто программирует на других языках, должен был понять

необходимо продумать структуру и параметры, которые необходимо хранить в файле, например надпись кнопки, ее цвет и координаты
создать файл, где это будет все описано
потом при загрузке программы, она обращается к файлу, считывает от туда все необходимые параметры (которые вы ранее в него записали) и перестраивает интерфейс согласно нему

примеров у меня нет, я как то раз делал русскоязычный+англ интерфейс с возможностью выбора, но проекта не сохранилось
Знание нескольких принципов освобождает от знания многих фактов!

Живу я здесь ||| LabVIEW Portal in Google+
IvanLis
Специалист LabVIEW
 
Сообщений: 497
Зарегистрирован: Пн апр 23, 2007 1:44 pm
Откуда: СССР

Сообщение Зинка » Вс июн 28, 2009 1:03 pm

То есть - все это вручную ?
Вручную я тоже могу.
Думала - может где-то есть готовое.

Кстати, как получить программно список всех контролов, имеющихся в данном ВП ?
Зинка
 

Сообщение Александр » Вс июн 28, 2009 11:58 pm

По первому вопросу не совсем понятно зачем Вам все-таки сохранять 2 интерфейса (пользовательских), мне кажется два различных .vi могут вполне справится с этой задачей...
Как один из вариантов могу порекомендовать сохранять рабочий .vi как .vit (шаблон) и работать с ним, а пользователи пусть открывают их как обычные .vi

По второму вопросу вариант:
Вложения
getCtrls.PNG
getCtrls.PNG (3.86 KiB) Просмотров: 7168
Александр
Активный пользователь
 
Сообщений: 38
Зарегистрирован: Вт янв 09, 2007 5:24 pm
Откуда: Москва

Сообщение Зинка » Пн июн 29, 2009 10:30 am

Александр писал(а):По первому вопросу не совсем понятно зачем Вам все-таки сохранять 2 интерфейса (пользовательских), мне кажется два различных .vi могут вполне справится с этой задачей...

Потому что я часто меняю блок-диаграмму. Добавляю что-нибудь по просьбам трудящихся. И мне лень менять ее на двух вариантах.


По второму вопросу вариант:

Спасибо.
Похоже, что это как раз пригодится.
Зинка
 

Сообщение Зинка » Вт июн 30, 2009 6:03 pm

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

Может ли LV работать с рекурсивным вызовом SubVI из самого себя ?
Зинка
 

Сообщение ctpexhih » Ср июл 01, 2009 8:04 pm

Можно делать рекурсии. Поищите в примерах лабвью по запросу "recursion".
ctpexhih
Пользователь
 
Сообщений: 16
Зарегистрирован: Вт авг 19, 2008 9:49 am

Сообщение егра » Ср июл 01, 2009 8:25 pm

Вот в этом примере я как раз этим занимался (рекурсивно прогонял все контролы):
http://www.labviewportal.eu/viewtopic.php?p=158#p158
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

Сообщение Зинка » Ср июл 01, 2009 9:31 pm

егра писал(а):Вот в этом примере я как раз этим занимался (рекурсивно прогонял все контролы):
http://www.labviewportal.eu/viewtopic.php?p=158#p158

Спасибо !

Пока не разобралась.
Кстати, нашла в примерах зверюшку по имени Tree Enhancements.vi
Она строит дерево подкаталогов и файлов заданного каталога.
Собралась далать "по образу и подобию".
Но там все - весьма непросто.
Если есть готовая - может подАрите ? :D

Я хотела сделать рекурсивный вызов - но оно заругалось.
Можат надо "матрешкой" - из a.vi вызывать b.vi, а потом из b.vi - снова a.vi ?
Так я еще не попробовала.
Или это делается через "динамическое обращение" ?
Зинка
 

Сообщение Зинка » Вс июл 05, 2009 8:34 pm

Вы будете смеяться, но оно заработало.
Выяснилось, что на панели главного VI имеется 300 контролов и индикаторов в 8 этажей иерархии.
Я сама обалдела !
Зинка
 

Сообщение егра » Вс июл 05, 2009 9:19 pm

А куда оно денется, рекурсия клёвая штука, только нужно всегда помнить о том, что она опасна, т.к. если неправильно её использовать, прога может зависнуть.
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

Сообщение Pael » Вт июл 07, 2009 5:19 pm

Есть еще один вариант: Использовать subpanel и в нее загружать по необходимости ctl (custom control) файлы с интерфейсами.
Pael
Пользователь
 
Сообщений: 23
Зарегистрирован: Вт июл 07, 2009 5:03 pm

Сообщение Зинка » Вт июл 07, 2009 7:54 pm

Рекурсию не люблю.
И то, что нашлось в примере с деревом, - это не та рекурсия, про которую я спрашивала.
Я спрашивала про рекурсивный вызов SubVI из самого себя.
Типа как у Кнута описаны всякие прцедуры лазанья по деревьям.

Не важно. Так даже лучше. Проще и понятнее.

А у меня сейчас другая проблема. Есть у меня и дерево, и массив.
Сохранила координаты и размер каждого контрола. Теперь - надо восстанавливать.
Да не тут-то было !
Размеры контрола - это свойство Read-Only
Полезла искать, как их восстанавливать.
В каждом виде контролов - по разному. И все бы ничего, да вот только у кластера такого "восстанавливаемого" свойства нет совсем... :?

Что подскажет всезнающий ALL ?
Зинка
 

След.

Вернуться в LabVIEW

Кто сейчас на форуме

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