04-19-2024 02:22 PM
I have created a GUI for operation of our various vehicle and systems. When operators run the executable, it opens the front panel of the GUI and they are prompted with a pop-up window to allow them to select the vehicle type for the Control GUI - as seen in the Selection Screen Image below.
After selecting the Vehicle, a loading screen will appear while the GUI details and panels are loaded for that vehicle configuration (Initializing Screen below).
Once everything loads, the correct Vehicle GUI is displayed for the test/operations team to use.
I would prefer a cleaner setup. Ideally I want to only see the selection screen pop-up when they run the executable. After the selection is made, then only the initializing pop-up should be visible. And after initializing is complete then the Vehicle GUI would appear - populated with the correct panels and parameters.
In code - the Selection Pop-up VI occurs prior to initializing my Main Queue. The Initializing pop-up VI will start to run after the Main Queue starts to initialize.
Is there some way to hide the Main UI front panel until the Selection and Initialization pop-up closes?
Thanks
LV2018 SP1.
Relec
04-19-2024 06:27 PM
Get a property node for the VI of the window you want to hide, and change its "Front Panel Window.State" property to hidden:
Then after the user makes a choice, set it back:
Or you could redo your popup VI to be your main VI, and launch the panel that is currently your main VI as a subVI from it, and hide your popup VI in the same way after the choice is made.
04-25-2024 10:56 AM
Thanks for the input.
I tried the front panel state - but setting it back to standard didn't bring the panel back. I believe I switched it to Maximized and it worked, but I still ended up with the front panel blinking momentarily before it becomes hidden. I could have played around with Window Appearance in VI Properties to get it to work, but didn't figure that out early enough.
I opted for option #2 - moved the selection VI out of the main program. For Runtime environment - I use System Exec.vi to call the main program executable and close the front panel of the selection VI. I still had the problem with the momentary blinking of the main program. But I then adjusted Window Appearance - unclicking Show front panel when called. Made sure the Main program FP was Hidden and Transparent (100%), and after everything is initialized I set FP to be 0% transparent and maximized.
For development environment, I just call the main program and set transparency to 100 for the selection VI. The main program sets the transparency to 0 for the selection VI when it stops execution - this allows me to test things in development mode without having to re-open the selection VI after every shutdown.
Relec