Хорошо, тогда скажу по-другому. Я имею ввиду что надо бы (по-моему) создать два подприбора. Первый в зависимости от подкладки-бэкграуда выбирает нужный бэкграунд, расставляет элементы по местам, показывает их(visible) и что самое главное выдаёт массив с референсами на существующие элементы(picture rings). Я имелл ввиду что первый подприбор и является инициализацией главного прибора. В дальнейшем ты уже работешь не с именами элементов, а напрямую с их референсами.
Второй подприбор работающий только с референсами на элементы-пикчеры задаёт им значения в зависимости от результата измерения.
А в деинизиализации(она не всегда обязательна) ты закрываешь открытые референсы, порты и т.д. и в конце концов выходишь из всей программы.
В любом случае я вижу что ты двигаешься в правильном направлении и остаётся почти только математика и геометрия для расположения элементов на бэкграунде. Чем то подобным я занимался, когда хотел при увеличении размеров окна прибора увеличить размеры и поменять координаты только некоторых элементов на панели.
Как я уже сказал левый верхний угол картинки-бэкраунда будет твоей опорной точкой для расположения элементов и считать удобнее с координатой центральной точки элемента.
Так же можно разделить расположение по горизонтали и расположение по вертикали на два разных подприбора.
Как я вижу расстояние между элементами по горизонтали всегда одинаково. Исключением является только расположение первого и последнего элемента в строке от края бэкграунда. Это расстояние равно половине расстояния между двумя элементами.
По вертикали пока не знаю точно.
Надо искать некоторые правила расположения и фиксировать эти правила в подприборах.
Использование VI Server Reference
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
Да, вроде так и получилось у меня.eg писал(а):Хорошо, тогда скажу по-другому. Я имею ввиду что надо бы (по-моему) создать два подприбора. Первый в зависимости от подкладки-бэкграуда выбирает нужный бэкграунд, расставляет элементы по местам, показывает их(visible) и что самое главное выдаёт массив с референсами на существующие элементы(picture rings). Я имелл ввиду что первый подприбор и является инициализацией главного прибора. В дальнейшем ты уже работешь не с именами элементов, а напрямую с их референсами.
Второй подприбор работающий только с референсами на элементы-пикчеры задаёт им значения в зависимости от результата измерения.
А в деинизиализации(она не всегда обязательна) ты закрываешь открытые референсы, порты и т.д. и в конце концов выходишь из всей программы.
В любом случае я вижу что ты двигаешься в правильном направлении и остаётся почти только математика и геометрия для расположения элементов на бэкграунде. Чем то подобным я занимался, когда хотел при увеличении размеров окна прибора увеличить размеры и поменять координаты только некоторых элементов на панели.
Как я уже сказал левый верхний угол картинки-бэкраунда будет твоей опорной точкой для расположения элементов и считать удобнее с координатой центральной точки элемента.
Так же можно разделить расположение по горизонтали и расположение по вертикали на два разных подприбора.
Как я вижу расстояние между элементами по горизонтали всегда одинаково. Исключением является только расположение первого и последнего элемента в строке от края бэкграунда. Это расстояние равно половине расстояния между двумя элементами.
По вертикали пока не знаю точно.
Надо искать некоторые правила расположения и фиксировать эти правила в подприборах.
А как нужно закрывать референсы?
А расположение я сделал щас так: X и Y - координаты 1-ого элемента, dX и dY - расстояние между 2 по горизонтали и вертикали. И в цикле приращение добавляю
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Использование VI Server Reference
Ну закрывать референсы не обязательно, если ты полностью покидаешь программу. LabVIEW закроет всё сам автоматически. Но если делать по правилам, то лучше закрыть. Я имел ввиду что при деинициализации закрывать порты например или записать напоследок установки программы в INI-файл.
То что ты сделал с координатами вроде бы неплохо. Т.е. для первого элемента ты делаешь абсолютную позицию, а остальные релативно друг к другу.
А референсы закрываются вот так:
То что ты сделал с координатами вроде бы неплохо. Т.е. для первого элемента ты делаешь абсолютную позицию, а остальные релативно друг к другу.
А референсы закрываются вот так:
- Вложения
-
- Close.PNG (894 байт) 12474 просмотра
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
Я записываю в ini каждый раз после завершения цикла проверки, потому при выходе не требуется сохранять, а вот порты да, закрыть надо...eg писал(а):Ну закрывать референсы не обязательно, если ты полностью покидаешь программу. LabVIEW закроет всё сам автоматически. Но если делать по правилам, то лучше закрыть. Я имел ввиду что при деинициализации закрывать порты например или записать напоследок установки программы в INI-файл.
То что ты сделал с координатами вроде бы неплохо. Т.е. для первого элемента ты делаешь абсолютную позицию, а остальные релативно друг к другу.
А референсы закрываются вот так:
Ну да, координады бакграунда + X + N*dx, N - № в строке.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Использование VI Server Reference
Ну а как насчёт разделения проги на подприборы? Ты так всё и работаешь с именами элементов или находишь в начале все нужные элементы, создаёшь массив с референсами и в дальнейшем работаешь уже только с этим массивом? Или всё таки работаешь в каждом подприборе с именами элементов и находишь каждый раз нужные элементы?
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
В массив выделяю:eg писал(а):Ну а как насчёт разделения проги на подприборы? Ты так всё и работаешь с именами элементов или находишь в начале все нужные элементы, создаёшь массив с референсами и в дальнейшем работаешь уже только с этим массивом? Или всё таки работаешь в каждом подприборе с именами элементов и находишь каждый раз нужные элементы?
Далее да, думаю надо вывести его в основое тело и работать через него. Пока что при изменении статуса делаю выборку по заголовку
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
- PaXXaN
- beginner
- Сообщения: 32
- Зарегистрирован: 19 янв 2008, 10:11
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Использование VI Server Reference
да, это доделалeg писал(а):Ну как? Всё работает? Скрин посмотрел, вроде всё в норме.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 4 Ответы
- 156 Просмотры
-
Последнее сообщение Artem.spb