Всем привет!
Возникла такая задача: необходимо дублировать фукциональные кнопки, расположенные на передней панели, списком в главном меню. Созрел пока только один вариант:
обрабатываем событие (выбор из главного меню функции - записать в таблицу) -->
локальной переменной, одноименной кнопки, присваиваем единицу -->
выполняется кусок кода для этой функции.
Попытался реализовать несколько иначе. Ивент структура реагирует на нажатие сохранить (в главном меню) или на нажатие одноименной кнопки, но такой вариант не прошел. Как-то, ведь, эта задача решается. Может кто-нибудь сталкивался, помогите
Дублирование функционала
-
Aleksey Feoktistov
- leader
- Сообщения: 898
- Зарегистрирован: 20 янв 2009, 00:15
- Награды: 6
- Версия LabVIEW: 2015
- Откуда: Tyumen
- Поблагодарили: 2 раза
- Контактная информация:
-
- VIP
- Сообщения: 1338
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: Дублирование функционала
Классически задачка решается регистрацией динамического события и вызовом его из event структуры как при нажатии кнопки, так и при выборе пункта меню. То есть в event структуре будет три фрейма - по одному для нажатия кнопки и меню и обработчик.
Другой вариант - модель "producer/consumer" - в этом случае делается два while цикла, связанных очередью. В еvent структуре будет два обработчика - они будут писать события в очередь, а второй цикл будет извлекать данные из очереди и выполнять общий участок кода.
Другой вариант - модель "producer/consumer" - в этом случае делается два while цикла, связанных очередью. В еvent структуре будет два обработчика - они будут писать события в очередь, а второй цикл будет извлекать данные из очереди и выполнять общий участок кода.
-
Aleksey Feoktistov
- leader
- Сообщения: 898
- Зарегистрирован: 20 янв 2009, 00:15
- Награды: 6
- Версия LabVIEW: 2015
- Откуда: Tyumen
- Поблагодарили: 2 раза
- Контактная информация:
Re: Дублирование функционала
AndreyDmitriev, огромное спасибо за Ваш ответ!
Второй вариант, вроде как, реализовать удалось. Но, что касается первого алгоритма, то я не смог понять, что же Вы имели ввиду
Второй вариант, вроде как, реализовать удалось. Но, что касается первого алгоритма, то я не смог понять, что же Вы имели ввиду
- Вложения
-
- пробник.vi
- Свежая версия
- (19.89 КБ) 126 скачиваний
-
- VIP
- Сообщения: 1338
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: Дублирование функционала
см. приложенный pdfstudent писал(а): что касается первого алгоритма, то я не смог понять, что же Вы имели ввиду
- Вложения
-
- Menu Button.pdf
- (42.9 КБ) 149 скачиваний
-
Aleksey Feoktistov
- leader
- Сообщения: 898
- Зарегистрирован: 20 янв 2009, 00:15
- Награды: 6
- Версия LabVIEW: 2015
- Откуда: Tyumen
- Поблагодарили: 2 раза
- Контактная информация:
Re: Дублирование функционала
AndreyDmitriev, спасибо Вам огромное! Все работает просто изумительно. Выкладываю , думаю, кому-нибудь точно пригодится.
- Вложения
-
- пробник2.vi
- (14.91 КБ) 139 скачиваний
-
- VIP
- Сообщения: 1338
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: Дублирование функционала
Да, примерно так. Есть ещё маленькая хитрость - в случае нескольких однотипных кнопок можно объединять обработчики в один. Получить индекс нажатой кнопки можно так, как показано на скриншоте (там два варианта). Вариант с референсами более универсальный (подойдёт не только для кнопок но вообще для любых однотипных элементов):student писал(а):AndreyDmitriev, спасибо Вам огромное! Все работает просто изумительно. Выкладываю , думаю, кому-нибудь точно пригодится.
-
Aleksey Feoktistov
- leader
- Сообщения: 898
- Зарегистрирован: 20 янв 2009, 00:15
- Награды: 6
- Версия LabVIEW: 2015
- Откуда: Tyumen
- Поблагодарили: 2 раза
- Контактная информация:
Re: Дублирование функционала
AndreyDmitriev, благодарю за ответ, думаю, воспользуюсь вашей рекоммендацией чуть позже. А сейчас у меня все работает