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!
kurze Frage: Ist es möglich einen ganzen "Klotz" an LV-Programm (While-Schleife, Event-Struktur ...) nur dann ausführen zu lassen, wenn ich einen bestimmten Tab der Registerkarte anklicke? Wechsel ich wieder zu einer anderen Tab, sollte mein ganz normales Programm wieder weiterlaufen mit einer anderen Eventstruktur.
Ich hab mal was zusammengeklickt (VI anbei), wie ich es mir vorstellen könnte. Aber ich glaube das birgt große Fehlerquellen in sich ... irgendwie stößt sich das ... Mit 2 Event-Strukturen zu arbeiten ist sicher unschön. Kann ich das eleganter lösen?
schließ doch das Tab-Control an eine Case-Struktur an...
Oder nutze es für Abbruchbedingungen deiner Schleifen (a la "Wenn Tab=Seite1 Dann weitermachen").
Und ja, 2 oder mehr Eventstrukturen pro VI können häßlich werden.
genau das hab ich doch schon in meinem VI gemacht? (siehe Bild).
Problem wäre ja das wenn ich den entsprechenden Tab anhabe, eine ganze Eventsteuerung ablaufen soll.
Du verwendest aber eine Eventstruktur innerhalb einer anderen Eventstruktur. Davon kann ich nur dringendst abraten. Du handelst dir mit so einem Aufbau sehr viel mehr Ärger ein als du glaubst. Sogar NI selber rät dringend von der Verwendung mehrerer Event-Strukturen innerhalb einer While-Schleife ab.
Es gibt immer eine Lösung, um nur mit 1 Event-Struktur auszukommen.
Ein schöner Ansatz für deinen Feature-Wunsch wäre ein Subpanel: Bei Wechsel auf eine bestimmte Tab-Seite wird das VI im Subpanel ausgeführt, wenn du wieder rausgehst, schießt du das Subpanel-VI ab.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(05.06.2011 12:23 )Mike77 schrieb: Ist es möglich einen ganzen "Klotz" an LV-Programm (While-Schleife, Event-Struktur ...) nur dann ausführen zu lassen, wenn ich einen bestimmten Tab der Registerkarte anklicke?
Das ist doch auf natürliche Art und Weise sowieso der Fall, also ohne daß dazu etwas programmiert werden muß.
Es können doch immer nur die Bedienelemente auf der jeweils aktiven Registerkarten-Seite betätigt werden. Die Bedienelemente auf den unsichbaren Seiten sind dem Bediener nicht zugänglich. Es können demnach auch nicht die entsprechenden Ereignisse ausgelöst werden.
Wenn ich Dich richtig verstehe, willst Du etwas verhindern, was sowieso nie stattfinden kann. Oder kannst Du an einem anderen Beispiel zeigen, daß Deine Frage einen sinnvollen Hintergrund hat?
Also so einfach funktioniert dein Programm genau im gewünschtem Sinne:
Schon mal danke für die Hilfen.
Ich hab bisher mal eine Variante (die mit den Subpanels) probieren können. Das scheint aufs erste gut zu klappen. Kann ich da später ein Geschwindigkeitsproblem befürchten wenn das
VI das geladen wird sehr groß ist?
Meine Lösung mit dem Sub-Panel, hab ich mal angehangen.
Zitat:Das ist doch auf natürliche Art und Weise sowieso der Fall, also ohne daß dazu etwas programmiert werden muß.
Es können doch immer nur die Bedienelemente auf der jeweils aktiven Registerkarten-Seite betätigt werden. Die Bedienelemente auf den unsichbaren Seiten sind dem Bediener nicht zugänglich. Es können demnach auch nicht die entsprechenden Ereignisse ausgelöst werden.
Wenn ich Dich richtig verstehe, willst Du etwas verhindern, was sowieso nie stattfinden kann. Oder kannst Du an einem anderen Beispiel zeigen, daß Deine Frage einen sinnvollen Hintergrund hat?
Also so einfach funktioniert dein Programm genau im gewünschtem Sinne:
Meine Frage entstand eigentlich aus folgendem Problem heraus: Ich habe ein Haupt-VI. Das besteht ganz grob gesagt aus einer While-Schleife in der eine Eventstruktur sitzt. Ich habe dann aber ein neues VI entworfen, weil es für die Entwicklung angenehmer war mit einem leeren VI zu beginnen. Nun steh ich natürlich vor der Aufgabe das neue VI in das Haupt-VI reinzubekommen. Letztlich können ja meine Events vom neuen VI zu den Events vom Haupt-VI, aber so einfach Copy & Paste wird das sicher nichts. Da entstehen zu viele Fehler. Die ganzen Bedienelemente muss ich auch kopieren. Daher kam mir halt in den Sinn, dass ich mein neues Vi einfach nur dann den Code abarbeiten lassen möchte, wenn man auf die entsprechenden Reiter klickt. Deswegen könnte ich mit dem Sub-Panel alles umgehen ...
Oder bin ich gut beraten das doch alles in das schon vorhandene Event zu kopieren?
06.06.2011, 11:41 (Dieser Beitrag wurde zuletzt bearbeitet: 20.06.2011 07:28 von Dennis.Moser.)
Anbei eine Idee/Vorschlag wie du dein VI weitest gehend behalten kannst indem du ein statisches SubPanel im Tab nutzt.
Das lässt sich auch einfacher builden als dein Ansatz mit VI per Pfad in Subpanel.