> But what i mean is One VI a big front panel (a), and when you push a button > another front panel (b) opens but the main vi (a) still runs, then when you > push another button from the main VI (a), another front panel opens (c) and > then when you click somewhere on panel (b) panel (c) holds but is still > visable in the back (panel a is allways visable in the back), then when you > click somewhere on (c), panel (b) holds but is still visable in the back. > Something like that. >
Perhaps the first place to start is with all three running freely. The thing to recognize is that if you call a subVI, the calling diagram is blocked until it returns. So if you have a fixed number of panels and make that many loops, each of them can open a panel and wait until it finishes. The only issue will be if you want to close the top panel. If you have a dynamic number of panels, or would like another way of doing this, you can also use the Run method instead of a Call or Call by Reference. The run method doesn't pass parameters to the subVI, but has the option to wait or not wait for the subVI to complete. If you choose not to wait, then the top VI can go ahead and do whatever it needs to and each subVI is also independent. As for the subVIs running only when active, assuming they need input, all you have to do is make them wait on events or have time delays that limit the amount of CPU they take. If they are acquiring I/O or something similar, you can probably use the VI property Is Frontmost to control the execution. Greg McKaskle
