Одна оболочка
-
- interested
- Сообщения: 3
- Зарегистрирован: 08 июн 2013, 22:47
- Версия LabVIEW: 9.0
- Контактная информация:
Одна оболочка
Доброго времени суток!
Пожалуйста, помогите решить проблему.
Создал приложение,которое состоит из отдельных подпрограмм: Меню и Тесты. Как сделать так,что бы когда выбираешь подпрограмму тесты, закрывалось подпрограмма меню и открывалась подпрограмма тесты? Когда я нажимаю на кнопку "Тесты" у меня подпрограмма открывается в отдельном окне и соответственно подпрограмма меню остается. Реально ли это как-то исправить, что бы все было в одной оболочке, а не "разорвано" на куски?
Пожалуйста, помогите решить проблему.
Создал приложение,которое состоит из отдельных подпрограмм: Меню и Тесты. Как сделать так,что бы когда выбираешь подпрограмму тесты, закрывалось подпрограмма меню и открывалась подпрограмма тесты? Когда я нажимаю на кнопку "Тесты" у меня подпрограмма открывается в отдельном окне и соответственно подпрограмма меню остается. Реально ли это как-то исправить, что бы все было в одной оболочке, а не "разорвано" на куски?
-
- interested
- Сообщения: 3
- Зарегистрирован: 08 июн 2013, 22:47
- Версия LabVIEW: 9.0
- Контактная информация:
Re: Одна оболочка.
Victor
Спасибо, да помогло, от части, у меня еще есть приложение авторизации, т.е. вход в тестирование осуществляется через процедуру ввода логина и пароля, и окно авторизации после входа остается на заднем плане основного приложения. Что нужно сделать, что бы после авторизации окно пропадало и когда пользователь выходит из основного приложения с помощью нажатия кнопки "Выход", панель авторизации снова появлялась?
Заранее спасибо!
Спасибо, да помогло, от части, у меня еще есть приложение авторизации, т.е. вход в тестирование осуществляется через процедуру ввода логина и пароля, и окно авторизации после входа остается на заднем плане основного приложения. Что нужно сделать, что бы после авторизации окно пропадало и когда пользователь выходит из основного приложения с помощью нажатия кнопки "Выход", панель авторизации снова появлялась?
Заранее спасибо!
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Одна оболочка.
При открытии вашего SubVI скрывайте основную форму, т.е. делайте её невидимой: http://digital.ni.com/public.nsf/allkb/ ... F3006E258B При закрытии SubVI снова показывайте главную форму, передавая в качестве State значение Standard. Посмотрите ещё здесь.Dogma писал(а):Что нужно сделать, что бы после авторизации окно пропадало и когда пользователь выходит из основного приложения с помощью нажатия кнопки "Выход", панель авторизации снова появлялась?
-
- interested
- Сообщения: 3
- Зарегистрирован: 08 июн 2013, 22:47
- Версия LabVIEW: 9.0
- Контактная информация:
Re: Одна оболочка.
Спасибо, ваш вариант помог решить задачу!dadreamer писал(а): При открытии вашего SubVI скрывайте основную форму, т.е. делайте её невидимой: http://digital.ni.com/public.nsf/allkb/ ... F3006E258B При закрытии SubVI снова показывайте главную форму, передавая в качестве State значение Standard. Посмотрите ещё здесь.
-
- beginner
- Сообщения: 43
- Зарегистрирован: 26 июл 2013, 15:24
- Версия LabVIEW: 2011-2012
- Контактная информация:
Re: Одна оболочка.
А возможно сделать так, чтобы при открытии SubVI я мог менять в режиме реального времени менять размеры окна?
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Одна оболочка.
Valentin, у текущего вы можете менять размеры фронтальной панели: https://decibel.ni.com/content/docs/DOC-13727 Я думаю, для SubVI это делается аналогично.
-
- beginner
- Сообщения: 43
- Зарегистрирован: 26 июл 2013, 15:24
- Версия LabVIEW: 2011-2012
- Контактная информация:
Re: Одна оболочка.
А если мне нужно перейти в какое определенное место в панели?dadreamer писал(а):Valentin, у текущего вы можете менять размеры фронтальной панели: https://decibel.ni.com/content/docs/DOC-13727 Я думаю, для SubVI это делается аналогично.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Одна оболочка.
Valentin, имеете в виду, что нужно прокрутить панель до необходимого места (как при вращении колесика мыши)? Тогда вот эта тема подойдёт: https://decibel.ni.com/content/docs/DOC-9771 Если же нужно переместить окно с панелью на какое-то место на экране, то подойдёт свойство FP.WinBounds (по аналогии с FP.PanelBounds). Центрировать можно методом FP.Center.
-
- beginner
- Сообщения: 43
- Зарегистрирован: 26 июл 2013, 15:24
- Версия LabVIEW: 2011-2012
- Контактная информация:
Re: Одна оболочка.
Спасибо за подсказку. Нашел пару примеров и попробовал и совместить. Но появилась проблема: если запустить Run continuosly, то у меня идет конфликт между FP.WinBounds и FP.Center (если запустить , то всё понятно). Можно ли каким-нибудь образом решить (т.е. центрировать окно, а затем как я захочу мне нужно изменять его размеры. При этом оно всегдо в центре)?dadreamer писал(а):то подойдёт свойство FP.WinBounds (по аналогии с FP.PanelBounds). Центрировать можно методом FP.Center.
К чему я задаю все эти вопросы.) В программе у меня стоит Tab Control. Мне нужно сделать так, чтобы при запуске программы у меня, изменяя FP.WinBounds, показывался толькo Tab Control. А затем при нажатии на кнопку у меня показывался индикатор, который находится рядом с Tab Control. При этом окно всегда в центре экрана.
- Вложения
-
- Manipulate the front panel.vi
- ver. 2011
- (16.27 КБ) 257 скачиваний
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Одна оболочка.
Valentin, ну, попробуйте сперва центрировать, потом получить текущие границы окна (WinBounds), по ним узнаете координаты левого верхнего угла. Далее создадите новый кластер, в котором первая точка - этот самый угол, а вторую (правый нижний угол) сделаете такой, как вам нужно, согласно ширине и высоте панели.
-
- beginner
- Сообщения: 43
- Зарегистрирован: 26 июл 2013, 15:24
- Версия LabVIEW: 2011-2012
- Контактная информация:
Re: Одна оболочка.
В принципе получилось. Но придя домой обнаружил, что при разном разрешении экрана координаты FP.PanelBounds, используя FP.Center, различны. Можно ли это каким-нибудь образом сделать универсальным?dadreamer писал(а):Valentin, ну, попробуйте сперва центрировать, потом получить текущие границы окна (WinBounds), по ним узнаете координаты левого верхнего угла. Далее создадите новый кластер, в котором первая точка - этот самый угол, а вторую (правый нижний угол) сделаете такой, как вам нужно, согласно ширине и высоте панели.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Одна оболочка
Valentin, может быть, выставить в настройках опции Position = Centered (категория Window Run-Time Position) и Maintain proportions of window for different monitor resolutions (категория Window Size)?
-
- beginner
- Сообщения: 43
- Зарегистрирован: 26 июл 2013, 15:24
- Версия LabVIEW: 2011-2012
- Контактная информация:
Re: Одна оболочка
Спасибо.dadreamer писал(а):Valentin, может быть, выставить в настройках опции Position = Centered (категория Window Run-Time Position) и Maintain proportions of window for different monitor resolutions (категория Window Size)?