Программное изменение индикатора на контроллер и обратно

Простейшие вопросы в области инженерной разработки

Программное изменение индикатора на контроллер и обратно

Postby K0sinus on 01 Dec 2017, 13:13

Добрый день! Есть таблица-индикатор. Возможно ли при нажатии кнопки "редактирование" сделать её контроллером и потом обратно индикатором?

Пробовал менять свойство Indicator, но при запуске выдаётся ошибка "The property is writable only when VI is in edit mode..." Возможно ли это обойти?
K0sinus
beginner
beginner
 
Posts: 10
Joined: 22 Nov 2017, 10:29
LabVIEW Version: 2014
Karma: 0

Re: Программное изменение индикатора на контроллер и обратно

Postby Blackman on 01 Dec 2017, 13:44

Таблица должна быть контролом. Дальше свойство Enabled-Disabled
http://zone.ni.com/reference/en-XX/help ... _disabled/
Blackman
leader
leader
 
Posts: 685
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 171

Re: Программное изменение индикатора на контроллер и обратно

Postby K0sinus on 01 Dec 2017, 13:51

Этот способ не годится, мне надо разрешить выбор и выделение строк, но запретить редактирование. Делаю это case'ом, если редактирование выключено, при value change возвращаем old value. Но зачем тогда свойство Indicator?
K0sinus
beginner
beginner
 
Posts: 10
Joined: 22 Nov 2017, 10:29
LabVIEW Version: 2014
Karma: 0

Re: Программное изменение индикатора на контроллер и обратно

Postby Blackman on 01 Dec 2017, 14:34

:wink:
Attachments
CI Table.vi
Версия 2013
(13.54 KiB) Downloaded 8 times
Blackman
leader
leader
 
Posts: 685
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 171

Re: Программное изменение индикатора на контроллер и обратно

Postby K0sinus on 01 Dec 2017, 15:22

Идея с двумя таблицами хороша. Но не жирно ли с точки зрения ресурсов держать две таблицы? Или мой метод (возвращение old value если редактирование выключено) такой же затратный?
Так зачем нужно свойство Indicator?!
K0sinus
beginner
beginner
 
Posts: 10
Joined: 22 Nov 2017, 10:29
LabVIEW Version: 2014
Karma: 0

Re: Программное изменение индикатора на контроллер и обратно

Postby dadreamer on 01 Dec 2017, 15:30

K0sinus wrote:Так зачем нужно свойство Indicator?!

Это для скриптинга в основном, чтобы различать контролы и индикаторы по неприведенным ссылкам.

K0sinus wrote:Делаю это case'ом, если редактирование выключено, при value change возвращаем old value.

А чем плох этот способ? Можно, конечно, ещё обрабатывать нажатия клавиш и кнопок мыши. Но нужно ли?
User avatar
dadreamer
doctor
doctor
 
Posts: 2897
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 709
I/O VIP vision internet

Re: Программное изменение индикатора на контроллер и обратно

Postby K0sinus on 01 Dec 2017, 15:55

А чем плох этот способ? Можно, конечно, ещё обрабатывать нажатия клавиш и кнопок мыши. Но нужно ли?


Очень усложнилась структура программы. Много пересекающихся событий, которые запускают друг друга. Пытаюсь найти что-то новое, чтобы не запускать лишний раз value change.
K0sinus
beginner
beginner
 
Posts: 10
Joined: 22 Nov 2017, 10:29
LabVIEW Version: 2014
Karma: 0

Re: Программное изменение индикатора на контроллер и обратно

Postby dadreamer on 01 Dec 2017, 16:05

K0sinus wrote:Очень усложнилась структура программы. Много пересекающихся событий, которые запускают друг друга. Пытаюсь найти что-то новое, чтобы не запускать лишний раз value change.

Ну, тогда лучше попробовать две таблицы. Если данных в таблице немного, то тормозить не будет. Иначе по-простому вряд ли получится сделать.
User avatar
dadreamer
doctor
doctor
 
Posts: 2897
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 709
I/O VIP vision internet

Re: Программное изменение индикатора на контроллер и обратно

Postby K0sinus on 01 Dec 2017, 17:54

Понял, спасибо!
K0sinus
beginner
beginner
 
Posts: 10
Joined: 22 Nov 2017, 10:29
LabVIEW Version: 2014
Karma: 0

Re: Программное изменение индикатора на контроллер и обратно

Postby Юрий on 03 Dec 2017, 13:09

Я, честно говоря, не уверен, что понял проблему. Но, всё же вот такой вариант.
Думается, что решение с Enabled-Disabled в этом варианте тоже пойдёт.
Attachments
Блок ввода.vi
(18.63 KiB) Downloaded 5 times
Юрий
adviser
adviser
 
Posts: 247
Joined: 28 Feb 2010, 18:04
LabVIEW Version: LV2011
Karma: 52

Re: Программное изменение индикатора на контроллер и обратно

Postby Blackman on 03 Dec 2017, 14:26

Юрий, у Вас в режиме индикации даже скролл не работает.-( А как делать выделение строк (выделение субтаблицы, а не одной строки) мышкой? А что по поводу например контекстного меню? Которое по хорошему должно быть разным для каждого режима. С двумя таблицами это решается очень просто. С минимальными затратами.
Blackman
leader
leader
 
Posts: 685
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 171

Re: Программное изменение индикатора на контроллер и обратно

Postby Vitekkz88 on 05 Dec 2017, 13:25

K0sinus, Вам шашечки или ехать? Если нужен именно индикатор(который позволяет так же выделять строки и всё такое), то только 2 таблицы.
Если же нужен дезейбл с возможностью скролить таблицу(но не выделять строки), то используйте декорацию.
Attachments
Table.vi
(10.9 KiB) Downloaded 4 times
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
leader
leader
 
Posts: 945
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 258
hardware I/O VIP


Return to Для чайников

Who is online

Users browsing this forum: Yandex and 12 guests

cron