Одна оболочка

Обсуждение, связанное с разработкой ПО верхнего уровня

Одна оболочка

Postby Dogma on 08 Jun 2013, 23:23

Доброго времени суток!
Пожалуйста, помогите решить проблему.
Создал приложение,которое состоит из отдельных подпрограмм: Меню и Тесты. Как сделать так,что бы когда выбираешь подпрограмму тесты, закрывалось подпрограмма меню и открывалась подпрограмма тесты? Когда я нажимаю на кнопку "Тесты" у меня подпрограмма открывается в отдельном окне и соответственно подпрограмма меню остается. Реально ли это как-то исправить, что бы все было в одной оболочке, а не "разорвано" на куски?
Dogma
interested
interested
 
Posts: 3
Joined: 08 Jun 2013, 22:47
LabVIEW Version: 9.0
Karma: 0

Re: Одна оболочка.

Postby Viktor on 09 Jun 2013, 01:22

Tab Control не подойдет?
User avatar
Viktor
expert
expert
 
Posts: 1398
Joined: 23 Mar 2008, 10:56
Location: Санкт-Петербург
Medals: 4
Activity (1) Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 2018
Karma: 161
hardware VIP bloggers

Re: Одна оболочка.

Postby Dogma on 09 Jun 2013, 16:07

Victor

Спасибо, да помогло, от части, у меня еще есть приложение авторизации, т.е. вход в тестирование осуществляется через процедуру ввода логина и пароля, и окно авторизации после входа остается на заднем плане основного приложения. Что нужно сделать, что бы после авторизации окно пропадало и когда пользователь выходит из основного приложения с помощью нажатия кнопки "Выход", панель авторизации снова появлялась?

Заранее спасибо!
Dogma
interested
interested
 
Posts: 3
Joined: 08 Jun 2013, 22:47
LabVIEW Version: 9.0
Karma: 0

Re: Одна оболочка.

Postby Viktor on 09 Jun 2013, 16:14

User avatar
Viktor
expert
expert
 
Posts: 1398
Joined: 23 Mar 2008, 10:56
Location: Санкт-Петербург
Medals: 4
Activity (1) Professionalism (1) Tutorials (1) Black (1)
LabVIEW Version: 2018
Karma: 161
hardware VIP bloggers

Re: Одна оболочка.

Postby dadreamer on 09 Jun 2013, 19:46

Dogma wrote:Что нужно сделать, что бы после авторизации окно пропадало и когда пользователь выходит из основного приложения с помощью нажатия кнопки "Выход", панель авторизации снова появлялась?

При открытии вашего SubVI скрывайте основную форму, т.е. делайте её невидимой: http://digital.ni.com/public.nsf/allkb/ ... F3006E258B При закрытии SubVI снова показывайте главную форму, передавая в качестве State значение Standard. Посмотрите ещё здесь.
User avatar
dadreamer
professor
professor
 
Posts: 3150
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 801
I/O VIP vision internet

Re: Одна оболочка.

Postby Dogma on 09 Jun 2013, 23:14

dadreamer wrote:При открытии вашего SubVI скрывайте основную форму, т.е. делайте её невидимой: http://digital.ni.com/public.nsf/allkb/ ... F3006E258B При закрытии SubVI снова показывайте главную форму, передавая в качестве State значение Standard. Посмотрите ещё здесь.

Спасибо, ваш вариант помог решить задачу!
Dogma
interested
interested
 
Posts: 3
Joined: 08 Jun 2013, 22:47
LabVIEW Version: 9.0
Karma: 0

Re: Одна оболочка.

Postby Valentin on 16 Aug 2013, 19:55

А возможно сделать так, чтобы при открытии SubVI я мог менять в режиме реального времени менять размеры окна?
Valentin
beginner
beginner
 
Posts: 43
Joined: 26 Jul 2013, 15:24
LabVIEW Version: 2011-2012
Karma: 0

Re: Одна оболочка.

Postby dadreamer on 16 Aug 2013, 22:06

Valentin, у текущего :vi: вы можете менять размеры фронтальной панели: https://decibel.ni.com/content/docs/DOC-13727 Я думаю, для SubVI это делается аналогично.
User avatar
dadreamer
professor
professor
 
Posts: 3150
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 801
I/O VIP vision internet

Re: Одна оболочка.

Postby Valentin on 17 Aug 2013, 09:29

dadreamer wrote:Valentin, у текущего :vi: вы можете менять размеры фронтальной панели: https://decibel.ni.com/content/docs/DOC-13727 Я думаю, для SubVI это делается аналогично.

А если мне нужно перейти в какое определенное место в панели?
Valentin
beginner
beginner
 
Posts: 43
Joined: 26 Jul 2013, 15:24
LabVIEW Version: 2011-2012
Karma: 0

Re: Одна оболочка.

Postby dadreamer on 17 Aug 2013, 09:51

Valentin, имеете в виду, что нужно прокрутить панель до необходимого места (как при вращении колесика мыши)? Тогда вот эта тема подойдёт: https://decibel.ni.com/content/docs/DOC-9771 Если же нужно переместить окно с панелью на какое-то место на экране, то подойдёт свойство FP.WinBounds (по аналогии с FP.PanelBounds). Центрировать можно методом FP.Center.
User avatar
dadreamer
professor
professor
 
Posts: 3150
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 801
I/O VIP vision internet

Re: Одна оболочка.

Postby Valentin on 19 Aug 2013, 08:06

dadreamer wrote:то подойдёт свойство FP.WinBounds (по аналогии с FP.PanelBounds). Центрировать можно методом FP.Center.

Спасибо за подсказку. Нашел пару примеров и попробовал и совместить. Но появилась проблема: если запустить Run continuosly, то у меня идет конфликт между FP.WinBounds и FP.Center (если запустить :vi: , то всё понятно). Можно ли каким-нибудь образом решить (т.е. центрировать окно, а затем как я захочу мне нужно изменять его размеры. При этом оно всегдо в центре)?

К чему я задаю все эти вопросы.) В программе у меня стоит Tab Control. Мне нужно сделать так, чтобы при запуске программы у меня, изменяя FP.WinBounds, показывался толькo Tab Control. А затем при нажатии на кнопку у меня показывался индикатор, который находится рядом с Tab Control. При этом окно всегда в центре экрана.
Attachments
Manipulate the front panel.vi
ver. 2011
(16.27 KiB) Downloaded 111 times
Valentin
beginner
beginner
 
Posts: 43
Joined: 26 Jul 2013, 15:24
LabVIEW Version: 2011-2012
Karma: 0

Re: Одна оболочка.

Postby dadreamer on 19 Aug 2013, 08:51

Valentin, ну, попробуйте сперва центрировать, потом получить текущие границы окна (WinBounds), по ним узнаете координаты левого верхнего угла. Далее создадите новый кластер, в котором первая точка - этот самый угол, а вторую (правый нижний угол) сделаете такой, как вам нужно, согласно ширине и высоте панели.
User avatar
dadreamer
professor
professor
 
Posts: 3150
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 801
I/O VIP vision internet

Re: Одна оболочка.

Postby Valentin on 19 Aug 2013, 17:57

dadreamer wrote:Valentin, ну, попробуйте сперва центрировать, потом получить текущие границы окна (WinBounds), по ним узнаете координаты левого верхнего угла. Далее создадите новый кластер, в котором первая точка - этот самый угол, а вторую (правый нижний угол) сделаете такой, как вам нужно, согласно ширине и высоте панели.

В принципе получилось. Но придя домой обнаружил, что при разном разрешении экрана координаты FP.PanelBounds, используя FP.Center, различны. Можно ли это каким-нибудь образом сделать универсальным?
Valentin
beginner
beginner
 
Posts: 43
Joined: 26 Jul 2013, 15:24
LabVIEW Version: 2011-2012
Karma: 0

Re: Одна оболочка

Postby dadreamer on 19 Aug 2013, 18:15

Valentin, может быть, выставить в настройках :vi: опции Position = Centered (категория Window Run-Time Position) и Maintain proportions of window for different monitor resolutions (категория Window Size)?
User avatar
dadreamer
professor
professor
 
Posts: 3150
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 801
I/O VIP vision internet

Re: Одна оболочка

Postby Valentin on 19 Aug 2013, 18:41

dadreamer wrote:Valentin, может быть, выставить в настройках :vi: опции Position = Centered (категория Window Run-Time Position) и Maintain proportions of window for different monitor resolutions (категория Window Size)?

Спасибо.
Valentin
beginner
beginner
 
Posts: 43
Joined: 26 Jul 2013, 15:24
LabVIEW Version: 2011-2012
Karma: 0

Next

Return to Лицевая панель

Who is online

Users browsing this forum: No registered users and 6 guests

cron