Проблема с меню

Простейшие вопросы в области инженерной разработки
nactyx
beginner
beginner
Сообщения: 47
Зарегистрирован: 13 ноя 2013, 21:03
Версия LabVIEW: 12

Проблема с меню

Сообщение nactyx »

За основу взято было вот это меню: http://labviewportal.eu/ru/licevaja-pan ... 1-10-12-45.
Подробно рассказываю ситуацию.
Изображение - стартовое окно.

Изображение - код. (Start lr2 аналогичен первому)

Изображение - окно lr1.vi (1-й лабораторной работы). Для него была попытка сделать run-time menu.

Изображение - это код. В принципе оставлен, как и в примере от EG с его интерактивным меню.

Итак, 1я проблема возникает с system exec vi. Вообще мне нужно, чтобы по нажатию на кнопку "Описание" открывался word с нужным .doc-файлом. Это в идеале. Столкнулся с такой ошибкой при запуске lr1.vi: Изображение

А 2я проблема - с меню.
Изображение
Хотел для пункта о программе сделать всплывающее сообщение. Но при нажатии на данный пункт, сообщение появляется и сразу же выходит. Я понимаю, почему так происходит. Но не могу понять, как сделать, чтобы этого не происходило.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Проблема с меню

Сообщение Eugen Graf »

С документом кто нибудь другой ответит, а вот вторую проблему убрать можно.
Для этого помести Event Structure в цикл While.
Цикл заканчивай во всех случаях, кроме того, который вызывает твой диалог с описанием "О программе".
nactyx
beginner
beginner
Сообщения: 47
Зарегистрирован: 13 ноя 2013, 21:03
Версия LabVIEW: 12

Re: Проблема с меню

Сообщение nactyx »

Eugen Graf, дело в том, что видимо я совсем чайник и только-только начинаю разбираться с labview.
Помещать в while нужно всё, или только сам event structure?
И как именно исключить завершение цикла в случае появления диалога?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Проблема с меню

Сообщение Eugen Graf »

Поместить только структуру, всё не нужно.
Заканчивать цикл с помощью зелёного флэга TRUE/FALSE, подключеного к условию завершения цикла (красненький кружочек в правом нижнем углу цикла).
nactyx
beginner
beginner
Сообщения: 47
Зарегистрирован: 13 ноя 2013, 21:03
Версия LabVIEW: 12

Re: Проблема с меню

Сообщение nactyx »

Eugen Graf, вроде получилось. Спасибо! Такой вопрос возник, из run-time menu я описал только одну кнопку в event structure, а именно: О программе. То, что при нажатии на другие пункты run-time menu та же реакция (т.е. появляется сообщение это же) - это нормально?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Проблема с меню

Сообщение Eugen Graf »

Нормально это когда программа работает так, как тебе хочется, а я думаю тебе не хочется, чтобы инфа о программе выскакивала при нажатии на любой пункт меню.
Разберись с функцией Case Structure, чтобы понять что означает "default case".
nactyx
beginner
beginner
Сообщения: 47
Зарегистрирован: 13 ноя 2013, 21:03
Версия LabVIEW: 12

Re: Проблема с меню

Сообщение nactyx »

Eugen Graf, судя по тому, что описано в help по пункту Specifying a Default Subdiagram for Case Structures - используя default case (по умолчанию) мы рассматриваем все случаи, кроме тех, которые "реализованы".
Интерпретируя к моей программе: в case structure мое "О программе" на данный момент является default case и именно поэтому появляется во всех случаях. На данном этапе для меня логична нулевая реакция по нажатию на другие пункты run-time menu.
Я добавил еще один case, его сделал default и оставил пустым.
Но запустить не удается, т.к. (текст ошибки): The Case or Event structure does not have anything wired to the output tunnel in one or more cases. Since only one frame of the structure is executed, every frame must assign values to all the outputs. Right-click the tunnel and select Use Default If Unwired to relax this requirement.
Что опять же логично. Вопрос: что такого добавить в этот default case - чтобы реакция была пустой.
Надеюсь, что смог донести свою мысль.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Проблема с меню

Сообщение dadreamer »

nactyx писал(а):Вообще мне нужно, чтобы по нажатию на кнопку "Описание" открывался word с нужным .doc-файлом.
System Exec - это никакой не интерпретатор командной строки, а обычный вызов внутренней функции :labview: . Под Виндой там скорее всего ShellExecuteEx используется. Так что перед запуском другого файла надо ставить cmd /c для запуска окна MS-DOS, в котором запустится уже нужный файл. Так что пример вызова вот такой:

Код: Выделить всё

cmd /c "C:\444.docx"
The Case or Event structure does not have anything wired to the output tunnel in one or more cases.
У вас, похоже, кластер error in/out не подсоединён в каких-то пустых кадрах структуры Case. Заведите на этот кластер пустую константу ("нет ошибок") и дело с концом.
Последний раз редактировалось dadreamer 13 мар 2014, 18:17, всего редактировалось 1 раз.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Проблема с меню

Сообщение Artem.spb »

ворда у меня нет, но либра открывается успешно:
open.png
open.png (13.76 КБ) 9300 просмотров
nactyx писал(а):Но запустить не удается, т.к. (текст ошибки): The Case or Event structure does not have anything wired to the output tunnel in one or more cases. Since only one frame of the structure is executed, every frame must assign values to all the outputs. Right-click the tunnel and select Use Default If Unwired to relax this requirement.
Что опять же логично. Вопрос: что такого добавить в этот default case - чтобы реакция была пустой.
Надеюсь, что смог донести свою мысль.
можно тунелю сказать "use default if unwired"
можно константу сделать "нет ошибки"
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Проблема с меню

Сообщение Eugen Graf »

Там написано:
Right-click the tunnel and select Use Default If Unwired to relax this requirement.
nactyx
beginner
beginner
Сообщения: 47
Зарегистрирован: 13 ноя 2013, 21:03
Версия LabVIEW: 12

Re: Проблема с меню

Сообщение nactyx »

dadreamer, всё заработало, спасибо! Но теперь другой момент, командная строка остается "висеть" в качестве открытого приложения. Можно ли ее программно закрывать или какой-нибудь другой способ открытия .doc файла в MS WORD.
И еще, все это дело как-то нужно привязать к кнопке, что тоже для меня проблема :(
nactyx
beginner
beginner
Сообщения: 47
Зарегистрирован: 13 ноя 2013, 21:03
Версия LabVIEW: 12

Re: Проблема с меню

Сообщение nactyx »

Eugen Graf и dadreamer, сработало, спасибо! "Сказал" use default if unwired.
Последний раз редактировалось nactyx 13 мар 2014, 18:20, всего редактировалось 1 раз.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Проблема с меню

Сообщение dadreamer »

nactyx писал(а):командная строка остается "висеть" в качестве открытого приложения.
Вход run minimized? = TRUE.
nactyx
beginner
beginner
Сообщения: 47
Зарегистрирован: 13 ноя 2013, 21:03
Версия LabVIEW: 12

Re: Проблема с меню

Сообщение nactyx »

dadreamer, супер! То, что нужно! Осталось как-то связать с нажатием на кнопку.
nactyx
beginner
beginner
Сообщения: 47
Зарегистрирован: 13 ноя 2013, 21:03
Версия LabVIEW: 12

Re: Проблема с меню

Сообщение nactyx »

Сделал.
Добавил еще один event
Изображение

Одобряете? :) Или в таком случае возможны какие-нибудь подводные камни?
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»