LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Is it possible to write an application in LabVIEW (2020+) that has a hidden panel and that will not flash at launch after being compiled to exe?


@rolfk wrote:

wiebe@CARYA wrote:

@rolfk wrote:

wiebe@CARYA wrote:

It might also help to change the run time size to 1X1 (or maybe 20X20 or something 1X1 might give an error). The FP will still show, but most people (except you ) will notice it.


1x1 is (or at least was last time I tried that, but that is quite a few years ago) not possible. LabVIEW has some minimum size and I think it is closer to 40x40 than 20x20.


Figured as much.

 

But I don't get any flickering anyway, so I can really test it. My load time is probably too small for my test main. It might still flicker, but so fast I can't see it.

 

Maybe that would help? Making a dummy splash that has the real main setup as load on first call, so it won't take long to load it.


That was my initial proposal. But it was shut down as not working, supposedly because they did not want to have a splash screen at all. I figured there was not much use to claim it would work anyways without being able to proof it explicitly and I did not feel like spending time to build that thing if the OP could not be bothered to try it himself.


The setup as "load on first call" was new in my proposal.

 

It might be different compared to a static VI ref or simply a subVI, loading the splash (or main that doesn't splash because it's transparent) much faster. But I really don't know if it works.

 

Also don't really want to spend much time testing, as in my first test I couldn't really reproduce the problem.

0 Kudos
Message 21 of 31
(1,101 Views)

Ok I will prepare some test setup as soon as I can. From the discussion I understand that the tricks with transparent FP, hidden FP, off screen FP and super small FP will not work reliably either with FFF or without it. Window will always be displayed and all the setting mentioned above will be applied after it is loaded. So, if I have slow PC or large app to load or both it will always flicker.

 

The best what I can do is to make start-up VI as small and simple as possible and load the main app after start-up is loaded (probably somehow dynamically). However, as mentioned before, flickering could not be eliminated 100%.

 

So, in my test setup I should focus on dynamic loading of the main app from the super small start-up vi. I guess for test I should add on the FP some big array with a lot of data saved as default values to artificially make the loading of it longer.

 

I will share the results.

Michał Bieńkowski
CLA, CTA

Someone devote his time to help solve your problem? Appreciate it and give kudos. Problem solved? Accept as a solution so that others can find it faster in the future.
Make a contribution to the development of TestStand - vote on TestStand Idea Exchange.
0 Kudos
Message 22 of 31
(1,077 Views)

Maybe one more question. If I set FP position off screen and set FP runtime position "unchanged", will it be opened off screen or opened in some default location and then moved off screen?

Michał Bieńkowski
CLA, CTA

Someone devote his time to help solve your problem? Appreciate it and give kudos. Problem solved? Accept as a solution so that others can find it faster in the future.
Make a contribution to the development of TestStand - vote on TestStand Idea Exchange.
0 Kudos
Message 23 of 31
(1,069 Views)

@bienieck wrote:

Ok I will prepare some test setup as soon as I can. From the discussion I understand that the tricks with transparent FP, hidden FP, off screen FP and super small FP will not work reliably either with FFF or without it. Window will always be displayed and all the setting mentioned above will be applied after it is loaded. So, if I have slow PC or large app to load or both it will always flicker.


I think the suggested solutions (FFF off and 100% transparency and optionally the size) works for everyone but you? So yes, it could be because you have a slow PC or a large app, but still I see no confirmation that the tricks don't work, only confirmation that the tricks do work for us, and that they don't work for you.

 

What we need to proceed is a project that reproduces the problem 100%, so we all know we're trying to fix the same problem. But that could be hard if it requires a large project.

0 Kudos
Message 24 of 31
(1,051 Views)

@bienieck wrote:

Maybe one more question. If I set FP position off screen and set FP runtime position "unchanged", will it be opened off screen or opened in some default location and then moved off screen?


I don't think so; off screen positions will be moved on screen.

 

Well, it might work if the moving happens after loading finished, but I doubt it.

 

It will work if you have two screens and the position is on a the screen that's turned off. Windows can't  see if a screen is off or on, so you'd need to disconnect it entirely for a proper test.

0 Kudos
Message 25 of 31
(1,049 Views)

@bienieck wrote:

The best what I can do is to make start-up VI as small and simple as possible and load the main app after start-up is loaded (probably somehow dynamically). However, as mentioned before, flickering could not be eliminated 100%..


I'd try the load on first call:

wiebeCARYA_2-1679996443176.png

Traditional dynamically (Open VI Reference) loading might seem easy, but... If you use a static VI reference, the dynamic VI is loaded with the main. If you use a path, the VI needs to be included in the main... All complexity you don't need.

 

In my (large) app, the results are mediocre though; it still takes ages before the splash shows (6 sec.), and the main shows very shortly (2 sec.) after that.

0 Kudos
Message 26 of 31
(1,038 Views)

I do it by path, then the splash shows pretty fast.

 

And yes it requires extra care when building, as you have of course to add the splash/startup as startup VI and the actual main as always included.

Rolf Kalbermatter
My Blog
0 Kudos
Message 27 of 31
(1,035 Views)

wiebe@CARYA wrote:
...

I'd try the load on first call:

wiebeCARYA_2-1679996443176.png

...

 

In my (large) app, the results are mediocre though; it still takes ages before the splash shows (6 sec.), and the main shows very shortly (2 sec.) after that.


Isn't that because you are doing the load on first call in parallel to opening the startup-VI? Open the startup-VI first, then load on first call.

Certified LabVIEW Architect
0 Kudos
Message 28 of 31
(1,032 Views)

@thols wrote:

wiebe@CARYA wrote:
...

I'd try the load on first call:

wiebeCARYA_2-1679996443176.png

...

 

In my (large) app, the results are mediocre though; it still takes ages before the splash shows (6 sec.), and the main shows very shortly (2 sec.) after that.


Isn't that because you are doing the load on first call in parallel to opening the startup-VI? Open the startup-VI first, then load on first call.


What really helped was turning "show front panel when loaded" on.

 

Also, it only worked because my main VI called Exit LabVIEW, if it doesn't (or does) this works better:

wiebeCARYA_0-1679998942142.png

 

 

EDIT: skip that. For large projects it still takes long to load and show the splash,  and than just a moment before the main loads...

0 Kudos
Message 29 of 31
(1,022 Views)

New tip: Have the main/startup-VI outside any lvlib.

 

I got the same issue today with a startup-VI that would flicker no matter what. I found that if I move it outside of the lvlib I had it in, there is no flickering.

 

This happens even if the lvlib is otherwise empty. I created a new lvlib and put a copy of the startup-VI in the lvlib. I also made a copy of the build spec for the exe in the lvlib. I have the build-settings for the exe set to default.

 

I have attached an example project.

Certified LabVIEW Architect
0 Kudos
Message 30 of 31
(970 Views)