LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

window visibility

I have an application having a main screen that uses buttons to select other screens.  All screens have multiple gauges that fill each screen, run full screen visibly replacing the main screen, and navigate ack to the main screen to select other screens.  I'm implementing a day/night color scheme selected only from the main screen.  When I change the day/night state on the main screen and then select another screen, the other screen becomes visible and then updates the color scheme. This is a fairly large application so the screen color scheme updates slowly giving a mixture of day and night colors until the update is done.  I need to hide the new screen until the update is complete.  I have tried using the VI > Front Panel > State property to hide the new screen when entered and then set the State to Standard or Maximized when the updates are complete.  This causes the main screen to momentarily flash off, back on briefly and then the selected screen appears with the updates.  This helped in not seeing the updates but the screen flashing is annoying.  Is there a way to eliminate the screen flashing and have a smooth transition from one screen to another without seeing the new screen updates?

 

Thanks in advance for any help!

 

Mel

LabView 7.0

0 Kudos
Message 1 of 4
(2,800 Views)

Maybe use a splash screen, VI with just a message on the front panel like UPDATING...  Put this vi in the foreground and size the front panel so that it covers the entire monitor.  Then close the front panel after the updating is complete.  You can open and close the front panel with property nodes.  The block diagram of the splash screen doesn't need to have any code.  You could get fancy and have the splash screen show a string indicator that blinks, or a progress bar.

 

Your main vi would have this code in it to show the splash screen for 2 seconds:

 

Splash.png

 

- tbob

Inventor of the WORM Global
0 Kudos
Message 2 of 4
(2,791 Views)

Thanks for the reply tbob.

 

I didn't specifically say that all the alternate screens are sub vi's but meant to imply that fact.  Thus, I'm unclear as to how the splash screen would help since the alternate screen code is not running until called and closes when exited, unless there is a way to call the wait screen and my alternate screen in parallel so the updates happen before the wait screen times out.   I'm afraid my inexperience is showing.

 

Hootowl

0 Kudos
Message 3 of 4
(2,767 Views)

If your application is sitting at the main screen when you change the color and no other windows are open, then I am assuming that each subVI then checks for what color mode to be in when it starts and you set it.  The user sees this because you have the subVIs set to open when called.  If this is the case, all you have to do is uncheck that option.  Have your code manually open itself after you have set the color scheme.  This way, the VI starts running, and it updates all the colors with the main window closed.  After setting the colors, you then open the window.  The user will see a brief delay int he window popping up, but it should be negligible. 

 

tbob's example shows how to do this.  If you do not open the VI reference, the FP Open and FP Close will be performed on the current VI.  Set the colors, then call FP Open. When the Vi is finished, do the FP Close.

Message Edited by Matthew Kelton on 04-03-2010 11:52 PM
0 Kudos
Message 4 of 4
(2,764 Views)