Работа с массивом
-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Работа с массивом
Добрый день. Есть пара вопросов про организацию и взаимодействие с массивом.
1. Есть кластер с combobox и numeric control (выбор типа аргумента и собственно сам аргумент). Создан массив кластеров. Хотелось бы для при выборе типа аргумента в numeric control задавать свои лимиты на вводимые значения, но я так понимаю, что в массиве это не так просто сделать, или невозможно. Есть какой-то иной вариант это сделать?
2. Другой массив - двумерный, у которого видимый размер ограничен условно 2 строки и 10 столбцов, но столбцов на самом деле больше. Если установить курсор на первый элемент и пользоваться клавишей TAB для перехода к следующему элементу, то после последнего видимого в строке курсор перейдёт на вторую строку. Как заставить нажатием клавиши TAB прокручивать массив сначала до конца строки по числу элементов, а только потом переходить на следующую строку?
Спасибо.
1. Есть кластер с combobox и numeric control (выбор типа аргумента и собственно сам аргумент). Создан массив кластеров. Хотелось бы для при выборе типа аргумента в numeric control задавать свои лимиты на вводимые значения, но я так понимаю, что в массиве это не так просто сделать, или невозможно. Есть какой-то иной вариант это сделать?
2. Другой массив - двумерный, у которого видимый размер ограничен условно 2 строки и 10 столбцов, но столбцов на самом деле больше. Если установить курсор на первый элемент и пользоваться клавишей TAB для перехода к следующему элементу, то после последнего видимого в строке курсор перейдёт на вторую строку. Как заставить нажатием клавиши TAB прокручивать массив сначала до конца строки по числу элементов, а только потом переходить на следующую строку?
Спасибо.
- zxc_pavel
- adviser
- Сообщения: 234
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: Работа с массивом
1. Так Вы обрабатывайте значения массива - если ввели значение больше (или меньше), чем нужно, то устанавливайте программно границу.
2. Видимо это нельзя сделать. Конкретно запросить номер выделенной ячейки кривыми путями можно, но при скроллинге выбранная ячейка становится не активной и нужно опять ее выбирать. Попробовал - прикладываю код.
2. Видимо это нельзя сделать. Конкретно запросить номер выделенной ячейки кривыми путями можно, но при скроллинге выбранная ячейка становится не активной и нужно опять ее выбирать. Попробовал - прикладываю код.
- Вложения
-
- 1304-2.vi
- (16.76 КБ) 12 скачиваний
-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Re: Работа с массивом
Думал только о том, что сразу границы ставить при выборе типа, но эти границы устанавливались у всего столбца контролов, вне зависимости от типа. Но каждый раз при вводе проверять границы в зависимости от типа в этой строке это да, сработает, спасибо!
Без колдовства в таких вещах точно не обойтись, буду пробовать, благодарю!
-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Re: Работа с массивом
Всё таки упёрся в проблему с 1 пунктом (добавились новые ограничения), и видимо проще пересмотреть саму структуру, но пока не могу придумать, как реализовать. Необходим массив, представляющий из себя массив аргументов преобразования. Каждый аргумент может быть 3 типов:
Но эту структуру нельзя добавить в массив, так как разные по числу контролов кластеры из-за третьего аргумента. Каким образом можно это реализовать? Спасибо-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
Re: Работа с массивом
Как не все йогурты одинаково полезны, так и не все интерфейсы легко даются.
Из описанного я могу сочинить только набор независимых кластеров, которые меняются по ходу пьесы. Когда пользователь выбирает тип, поля ввода подстраиваются под него.
Если вам нужен именно "массив", прикрутите скролбар рядом для симуляции перемотки и при его изменении обновляйте содержимое кластеров
Из описанного я могу сочинить только набор независимых кластеров, которые меняются по ходу пьесы. Когда пользователь выбирает тип, поля ввода подстраиваются под него.
Если вам нужен именно "массив", прикрутите скролбар рядом для симуляции перемотки и при его изменении обновляйте содержимое кластеров
-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Re: Работа с массивом
Решил немного изменить вид представления канала, поэтому будет использоваться строковый контрол, и в зависимости от типа через те же регулярные выражения проводить проверки на правильность ввода. Тогда массив будет возможен и выглядеть будет вполне цивильно. Всем спасибо
-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
Re: Работа с массивом
Не думаю, что это хорошая идея.
У нумерика есть ряд преимуществ, а так вы вешаете на пользователя ненужные сложности по правильному вводу информации.
У нумерика есть ряд преимуществ, а так вы вешаете на пользователя ненужные сложности по правильному вводу информации.
-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Re: Работа с массивом
Идея не самая лучшая, но по совокупности "интерфейс-простота реализации", как по мне, самая быстрая и простая. Ограничения на формат ввода будут лишь на канал, остальное всё будет корректироваться по мере ввода символов, для пользователя никаких видимых трудностей не будет.
-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
Re: Работа с массивом
Ну это вы так думаете, спрашивать надо реального пользователя, а не вашу фантазию о нём.
Простой пример, о котором я не задумывался в начале своего программерского пути, а понял только после прочтения умных книг. Раньше программисты считали очень умным сделать кнопку "нажми меня", а при нажатии выдать гневное окно "ну нельзя же нажимать". Пользователь при этом ощущает себя дураком, а никто не любит ощущать себя дураком и в такой момент всякий пользователь проклинает программиста

В тех же умных книгах есть ценная мысль: программы должны быть для пользователей, а не программистов.как по мне, самая быстрая и простая
Реализация должны быть простой для пользователя, а не для вас.
Если я правильно понимаю словесное описание хода ваших мыслей, вы хотите заставить пользователя вводить два числа в строку. При этом в другом режиме будет ввод дробного числа.
Через точку, или запятую? Вы будете обрабатывать региональные настройки, или пользователь должен будет подстраиваться под то, что удобно программисту?
-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Re: Работа с массивом
Это вы так думаете, что я так думаю

Точки и запятые будут автоматом заменяться на нужный программе символ, пользователю можно вводить то, что ему удобнее/ближе/привычнее.
Если я правильно понимаю словесное описание хода ваших мыслей, вы хотите заставить пользователя вводить два числа в строку. При этом в другом режиме будет ввод дробного числа.
Через точку, или запятую? Вы будете обрабатывать региональные настройки, или пользователь должен будет подстраиваться под то, что удобно программисту?
А про пользователей-дураков - тоже был в их числе, и даже приходилось исправлять кучу чужого кода, лишь бы для конечного потребителя, в том числе и для меня, было меньше неловких и непонятных ситуаций. Да и свои дураки будут знать, как пользоваться ПО, а для чужих документацию напишем

-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
-
- user
- Сообщения: 78
- Зарегистрирован: 05 ноя 2020, 08:26
- Версия LabVIEW: 18, 20.0f1
- Благодарил (а): 18 раз
- Поблагодарили: 2 раза
- Контактная информация:
Re: Работа с массивом
У нас к каждой мелкой программке руководство оператора есть, которое испытывается на подопытных (на соседних отделах), так что его приходится не только читать, а ещё и находить неточности и дорабатывать)
-
- interested
- Сообщения: 2
- Зарегистрирован: 24 май 2023, 22:01
- Версия LabVIEW: 2020
- Контактная информация:
Re: Работа с массивом
Здравствуйте! У меня такая проблема, на фото ниже программа, которая передает запросы по локальной сети на другой компьютер и обратно принимает. Задача состоит в том, чтобы фиксировать время отправления и прибытия запросов. Нужно сформировать какой-то массив, так как количество итераций множество и по результатам построить график. Как можно это реализовать?
-
- professor
- Сообщения: 3146
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 32 раза
- Поблагодарили: 135 раз
- Контактная информация:
Re: Работа с массивом
У вас не такая проблема

У вас непонимание потока данных для начала. Верхние два цикла как бы должны работать параллельно, но на самом деле второй стартует только после первого.
Вам нужно разобраться с основами, а потом уже измерять время передачи данных по сети.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение