Mahlzeit,
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.
Wie kann ich das machen?
MfG Stefan
Hallo Stefan,
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.
Gruß
sven
Würde zur Not auch gehen, aber besser wär, dass VI unsichtbar zu machen.
Weiss nicht jemand ne lösung dafür?
Hi
Schau dir das BEispiel mal an
Gruß
Jürgen
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.
Didier