Доброго времени суток,уважаемые форумчане!
Есть такая проблемка.Из созданного меню не могу вытянуть параметры для последующего управления.
Т.е. меню есть ,а как понять ,что я кликаю не могу.Перепробовал много способов,ничего не получается.
Буду признателен за любую помощь.
Вертикальное меню
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Вертикальное меню
Вам нужно зарегистрировать .NET callback, чтобы получить доступ к событиям .NET объекта. Регистрация выполняется через инструмент Connectivity -> .NET -> Register Event Callback. На вход event callback refnum заводите Callback Ref, на event source - Container Ref (это выходы Create Menu.vi), а далее - по мануалу из справки. Если никогда с callback'ами не работали, то сперва прочтите http://zone.ni.com/reference/en-XX/help ... _ax_evnts/ и изучите примеры C:\Program Files (x86)\National Instruments\LabVIEW 2012\examples\comm\dotnet\Events.llb.
-
- user
- Сообщения: 96
- Зарегистрирован: 14 июн 2013, 12:50
- Версия LabVIEW: 2012
- Контактная информация:
Re: Вертикальное меню
Не совсем получается,сделал так.Пишет ошибки.Объект,как я понял уже зарегистрирован ?Помогите,пожалуйста)
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Вертикальное меню
Andry, невнимательно читали мануал... Сходу вижу, что не выбран Event: нужно нажать ПКМ на инструменте регистрации (Event) и выбрать событие, которое вы хотите отследить. Также на VI Ref заведёна не та ссылка: обработчик для callback'а вам нужно создать вручную - нажимаете ПКМ на инструменте регистрации (VI Ref) -> Create Callback VI. Второе действие делается только после первого. User Parameter определяете сами, что хотите передать в функцию, то и заводите на этот вход. Можно и ничего не заводить.
Для лучшего понимания сабжа рекомендую воссоздать с нуля один из примеров от NI.
Для лучшего понимания сабжа рекомендую воссоздать с нуля один из примеров от NI.
-
- user
- Сообщения: 96
- Зарегистрирован: 14 июн 2013, 12:50
- Версия LabVIEW: 2012
- Контактная информация:
Re: Вертикальное меню
Буду пробовать.Но в примера созданы дополнительные vi и зарегистрированы.Ладно ,пока не буду морочить голову,буду пробовать,если не получится,обращусь ,за помощью.
Спасибо за подсказки)
Спасибо за подсказки)
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Вертикальное меню
Эти создаются вручную и являются callback обработчиками событий. Я уже писал выше, как создать callback. Вот краткий разбор примера Passing Data to a .NET Event Callback.vi. Суть в том, что когда крутим ручку на Knob'е, индикатор (Meter) обновляется и показывает то же значение, что мы выставили на Knob'е. Обновление индикатора происходит в callback Callback - EventHappened.vi. При регистрации callback'а мы задаём User Parameter - ссылку на индикатор. Затем ждём в Event Structure событие поворота ручки. Как только возникает это событие, записываем значение ручки Knob в параметр .NET объекта DataWatcher, срабатывает наш callback Callback - EventHappened.vi и в нём меняется значение индикатора (Meter).Andry писал(а):Но в примера созданы дополнительные vi и зарегистрированы.
Если разобраться, то ничего сложного нет. В случае, если нужно из callback'а вернуть в основной какие-то параметры, то удобнее при регистрации User Parameter делать в виде User Event или очереди (например, строкового типа) и в самом callback'е писать какие-нибудь параметры, а в основном читать их.