Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich programmiere ein Programm, welches aus mehreren Oberflächen besteht, die alle von der Hauptoberfläche abgehen.
Jetzt möchte ich das Haupt-VI mit seiner Haupt-Oberfläche verbergen können, solange ein Unterprogramm mit einer anderen Bedienoberfläche ausgeführt wird.
reicht es dir, wenn das Panel minimiert wird.
Dafür gibt es einen Methodenknoten. Einfach Referenz auf dein HauptVI öffnen und die Referenz an den Methodenknoten übergeben.
So richtig funzt das aber nicht. Wenn ich vom Unterpanel zum Hauptpanel zurückkehre, erscheint kurz das Start-Fenster von LabVIEW. das sieht etwas unschön aus. Und wenn ich mein Programm dann noch durch den App.Builder jage, hängt es sich nach dem beenden des Unterpanels auf.
in der Hilfe steht geschrieben, dass LabVIEW empfielt, anstatt der hier verwendeten Eigenschaft FP-Fenster öffnen die Methode FP öffnen zu benutzen. Hab ich auch ausprobiert, funzt aber garnicht.
Ich besitze LV8 nicht, so kann ich das Beispiel nicht sehen. Denke aber zu wissen, wo das Problem liegt. Ich habe eine Version erstellt, die bei mir funktioniert.
Kleine Erklärung:
- Das sub-vi wird geöffnet, bevor das top-vi verbirgt wird und umgekehrt beim schliessen
- Du musst sicherstellen, dass jederzeit mindestens ein vi oder eine Referenz zu einem vi geöffnet ist. Sonst funktioniert dein exe nicht. Denn, wenn LV befreit den Speicher eines vi's, sobald dieses nicht sichtbar ist, und keine Referenz zu diesem vorhanden ist.
- im sub-vi habe ich den Event "panel close?" abgefangen. Dadurch wird der Befehl um das vi zu schliessen abgefangen, bevor er ausgeführt wird: damit das Top-vi wieder geöffnet werden kann bevor das sub-vi geschlossen wird.