Страница 1 из 1

недоступная вкладка Tab Control

Добавлено: 11 янв 2022, 12:02
Bam1970
Добрый день!

На панели один из кластеров невидим.
Вопрос:
Как сделать недоступным одну из вкладок Tab control?

Re: недоступная вкладка Tab Control

Добавлено: 11 янв 2022, 16:58
Kosist
Нужно при помощи Property Node вытянуть ссылки на табы (Pages), а потом вытянуть через Index Array нужную, и ее сделать Disabled.

Re: недоступная вкладка Tab Control

Добавлено: 12 янв 2022, 06:43
Bam1970
Спасибо!

Re: недоступная вкладка Tab Control

Добавлено: 12 янв 2022, 13:53
Bam1970
Добрый день!

Возможен ли установить фокус на вкладку Tab Control ?
Мне нужно было сделать переключение между вкладками без клика на вкладку.

Re: недоступная вкладка Tab Control

Добавлено: 12 янв 2022, 15:22
Sergey Puzanov
Самый простой способ - клавиша TAB, пока не будет выделен tab control, дальше можно использовать стрелки для переключения между вкладками.

Re: недоступная вкладка Tab Control

Добавлено: 12 янв 2022, 15:51
Artem.spb
Bam1970 писал(а): 12 янв 2022, 13:53 Возможен ли установить фокус на вкладку Tab Control ?
Что вы подразумеваете под "установить"?
Определить, что мышь над контролом?
Или переключить вкладки клавиатурой, как подсказал Sergey Puzanov?
Или вообще программно переключать по каким-то событиям?

Re: недоступная вкладка Tab Control

Добавлено: 12 янв 2022, 15:52
Kosist
Bam1970 писал(а): 12 янв 2022, 13:53 Возможен ли установить фокус на вкладку Tab Control ?
Мне нужно было сделать переключение между вкладками без клика на вкладку.
Используйте Property Node -> Value (в режиме записи). Значения для этого параметра - это Ring (или Enum, не суть важно) с именами вкладок.

Re: недоступная вкладка Tab Control

Добавлено: 13 янв 2022, 07:35
Bam1970
Kosist писал(а): 12 янв 2022, 15:52 Используйте Property Node -> Value (в режиме записи). Значения для этого параметра - это Ring (или Enum, не суть важно) с именами вкладок.
Thanks!

Re: недоступная вкладка Tab Control

Добавлено: 13 янв 2022, 15:47
Artem.spb
Kosist писал(а): 12 янв 2022, 15:52 Используйте Property Node -> Value (в режиме записи).
Зачем PN, когда локальная переменная работает быстрее?

Re: недоступная вкладка Tab Control

Добавлено: 13 янв 2022, 18:50
Kosist
Artem.spb писал(а): 13 янв 2022, 15:47
Kosist писал(а): 12 янв 2022, 15:52 Используйте Property Node -> Value (в режиме записи).
Зачем PN, когда локальная переменная работает быстрее?
Переключение табы - операция, которую не нужно делать каждую десятую долю секунды. Поэтому по-сути все равно что использовать, можно и узел свойств, можно и локальную. Дело вкуса :wink:

Re: недоступная вкладка Tab Control

Добавлено: 13 янв 2022, 20:02
dadreamer
Вечный холивар :labview: - Local variable VS Property Node :) В старых талмудах категорически советовали избегать употребления локальных переменных. Объяснение было такое, что этот подход нарушает принцип потока данных. Об обратной стороне медали (т.е., скорости выполнения и не-переключении в UI) в книжках почему-то никто не писал.

Re: недоступная вкладка Tab Control

Добавлено: 13 янв 2022, 21:21
Artem.spb
Поддерживаю предыдущего оратора :)
Даже если операция выполняется редко, странно выбирать очень медленный способ при наличии быстрого. По сути сейчас мало кто задумывается об оптимизации программ ("надо будет - купят комп мощнее"), но нормально ли это?
Упарываться ради ускорения тоже не стоит, но не в очевидных же моментах.
Работал как-то с чужим проектом. Автор написал свой subVI бинарного поиска по массиву и хранил ссылки в виде DBL!!!! в отсортированном массиве.
Я ради интереса сделал "не оптимальный код" с поиском по массиву встроенной функцией. Мой вариант оказался быстрее в несколько раз.

А по поводу потока данных с PN. Ну я редко замечаю, чтобы пользователи соединяли Error in/out в таких элементах :)

Re: недоступная вкладка Tab Control

Добавлено: 14 янв 2022, 00:45
Kosist
Artem.spb писал(а): 13 янв 2022, 21:21 Даже если операция выполняется редко, странно выбирать очень медленный способ при наличии быстрого. По сути сейчас мало кто задумывается об оптимизации программ ("надо будет - купят комп мощнее"), но нормально ли это?
Нужно рассматривать конкретный случай. Если бы нужно было производить запись в контрол в цикле, гоняя его с большой частотой (что уже само по себе занятие сомнительное, т.к. человеческий глаз не увидит значения, меняющиеся каждую миллисекунду), то тогда вопросов нет - локальная переменная наше все.
Но тут задание оооооочень простое, которое вообще не требует оптимизации. Как часто будет переключаться вкладка? Заметит ли пользователь разницу в скорости переключения? Ответ очевиден - никто ничего не заметит, и ничего в программе не будет тормозить.
И локальная переменная решает лишь одну задачу - запись или чтение значения. А в приложениях обычно нужно делать больше - менять Disable свойство в зависимости от условий, может Visibility, шрифты - да что угодно. И все это нужно делать лишь при помощи Property Node. Так что зачем делать код "неоднородным" - тут записывать значение через локальную переменную, а где-то менять свойство через узел свойств.
Ну, и не нужно забывать, что при модулярном дизайне действия с юзер интерфейсом часто выносятся в общие классы, в сабвиайки, и т.д. - и тогда работа с контролами/индикаторами происходит лишь через ссылку, т.к. прямого доступа к ним нет. Ну или через функцию Set/Get Control Values by Index.
И опять же - в этом конкретном случае выбор записи через локальную переменную, или Property Node никоим образом не будет влиять на скорость выполнения программы. Поэтому здесь - это дело вкуса; и тема оптимизации здесь ни при чем.