Проблема с меню
Проблема с меню
За основу взято было вот это меню: 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я проблема - с меню.
Хотел для пункта о программе сделать всплывающее сообщение. Но при нажатии на данный пункт, сообщение появляется и сразу же выходит. Я понимаю, почему так происходит. Но не могу понять, как сделать, чтобы этого не происходило.
Подробно рассказываю ситуацию.
- стартовое окно.
- код. (Start lr2 аналогичен первому)
- окно lr1.vi (1-й лабораторной работы). Для него была попытка сделать run-time menu.
- это код. В принципе оставлен, как и в примере от EG с его интерактивным меню.
Итак, 1я проблема возникает с system exec vi. Вообще мне нужно, чтобы по нажатию на кнопку "Описание" открывался word с нужным .doc-файлом. Это в идеале. Столкнулся с такой ошибкой при запуске lr1.vi:
А 2я проблема - с меню.
Хотел для пункта о программе сделать всплывающее сообщение. Но при нажатии на данный пункт, сообщение появляется и сразу же выходит. Я понимаю, почему так происходит. Но не могу понять, как сделать, чтобы этого не происходило.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Проблема с меню
С документом кто нибудь другой ответит, а вот вторую проблему убрать можно.
Для этого помести Event Structure в цикл While.
Цикл заканчивай во всех случаях, кроме того, который вызывает твой диалог с описанием "О программе".
Для этого помести Event Structure в цикл While.
Цикл заканчивай во всех случаях, кроме того, который вызывает твой диалог с описанием "О программе".
Re: Проблема с меню
Eugen Graf, дело в том, что видимо я совсем чайник и только-только начинаю разбираться с labview.
Помещать в while нужно всё, или только сам event structure?
И как именно исключить завершение цикла в случае появления диалога?
Помещать в while нужно всё, или только сам event structure?
И как именно исключить завершение цикла в случае появления диалога?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Проблема с меню
Поместить только структуру, всё не нужно.
Заканчивать цикл с помощью зелёного флэга TRUE/FALSE, подключеного к условию завершения цикла (красненький кружочек в правом нижнем углу цикла).
Заканчивать цикл с помощью зелёного флэга TRUE/FALSE, подключеного к условию завершения цикла (красненький кружочек в правом нижнем углу цикла).
Re: Проблема с меню
Eugen Graf, вроде получилось. Спасибо! Такой вопрос возник, из run-time menu я описал только одну кнопку в event structure, а именно: О программе. То, что при нажатии на другие пункты run-time menu та же реакция (т.е. появляется сообщение это же) - это нормально?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Проблема с меню
Нормально это когда программа работает так, как тебе хочется, а я думаю тебе не хочется, чтобы инфа о программе выскакивала при нажатии на любой пункт меню.
Разберись с функцией Case Structure, чтобы понять что означает "default case".
Разберись с функцией Case Structure, чтобы понять что означает "default case".
Re: Проблема с меню
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 - чтобы реакция была пустой.
Надеюсь, что смог донести свою мысль.
Интерпретируя к моей программе: в 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
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Проблема с меню
System Exec - это никакой не интерпретатор командной строки, а обычный вызов внутренней функции . Под Виндой там скорее всего ShellExecuteEx используется. Так что перед запуском другого файла надо ставить cmd /c для запуска окна MS-DOS, в котором запустится уже нужный файл. Так что пример вызова вот такой:nactyx писал(а):Вообще мне нужно, чтобы по нажатию на кнопку "Описание" открывался word с нужным .doc-файлом.
Код: Выделить всё
cmd /c "C:\444.docx"
У вас, похоже, кластер error in/out не подсоединён в каких-то пустых кадрах структуры Case. Заведите на этот кластер пустую константу ("нет ошибок") и дело с концом.The Case or Event structure does not have anything wired to the output tunnel in one or more cases.
Последний раз редактировалось dadreamer 13 мар 2014, 18:17, всего редактировалось 1 раз.
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Проблема с меню
ворда у меня нет, но либра открывается успешно:
можно константу сделать "нет ошибки"
можно тунелю сказать "use default if unwired"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 - чтобы реакция была пустой.
Надеюсь, что смог донести свою мысль.
можно константу сделать "нет ошибки"
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Проблема с меню
Там написано:
Right-click the tunnel and select Use Default If Unwired to relax this requirement.
Right-click the tunnel and select Use Default If Unwired to relax this requirement.
Re: Проблема с меню
dadreamer, всё заработало, спасибо! Но теперь другой момент, командная строка остается "висеть" в качестве открытого приложения. Можно ли ее программно закрывать или какой-нибудь другой способ открытия .doc файла в MS WORD.
И еще, все это дело как-то нужно привязать к кнопке, что тоже для меня проблема :(
И еще, все это дело как-то нужно привязать к кнопке, что тоже для меня проблема :(
Re: Проблема с меню
Eugen Graf и dadreamer, сработало, спасибо! "Сказал" use default if unwired.
Последний раз редактировалось nactyx 13 мар 2014, 18:20, всего редактировалось 1 раз.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Проблема с меню
Вход run minimized? = TRUE.nactyx писал(а):командная строка остается "висеть" в качестве открытого приложения.
Re: Проблема с меню
Сделал.
Добавил еще один event
Одобряете? :) Или в таком случае возможны какие-нибудь подводные камни?
Добавил еще один event
Одобряете? :) Или в таком случае возможны какие-нибудь подводные камни?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение