(09.09.2016 05:12 )GT123 schrieb: In meinem main.vi (welches aktuell das Tab Control besitzt) ist allerdings eine Event Struktur welche unzählige Events des Controls abarbeitet.
Die Anzahl der Events auf "unzählig" hochzuschrauben ist programmtechnisch gesehen eine schlechte Wahl. Ich nehme mal an, die große Anzahl kommt deswegen, weil du viele einzelne Eingabeelemente für Parameter hast. Besser ist es, die einzelnen Elemente zu Clustern zusammenzufassen. Es dürfen auch Cluster in Cluster entstehen. Durch das Verwenden von Clustern wird die Anzahl der Events dann bestimmt schlagartig kleiner - da immer auf Wertänderung im kompletten Cluster reagiert wird.
Nicht so einfach zu umgehen sind die Events durch Buttons, die eine Aktion starten - aber es ist indirekt möglich: durch Verlagerung in SubVIs. Oft sammelt man in einem VI mehrere Sourcecode-Abschnitte, die von einander unabhängig sind. Solchen unabhängigen Code kann man in SubVIs auslagern und dort bearbeiten. Dann entsteht zwar ein neues Problem: Wie sollen diese SubVIs gehandhabt werden. Aber auch dieses Problem ist lösbar.
Bei deinem Programm könnte ich mir folgendes vorstellen: Einige der Eingaben, die jetzt auf einem TabSheet des TabControls liegen, gehören logisch zu einem deiner bereits bestehenden SubVIs. Was liegt da näher, als die Eingabe dieser Parameter auch in das SubVI zu integrieren?
Zitat:Wie kann ich dies anpassen? Eine Referenz auf das "TabControl Subvi"
Eine Referenz auf das TabControl würde ich nicht machen. Lieber schon eine Referenz auf einen Cluster ...
Zitat:... aber wie dann auf die event Struktur im main.vi anbinden?
Gar nicht.
Man kann auch folgendes machen: Das Eingabeelement sowie die Eventsequenz verbleiben im MainVI. In jedem Event steht dann nur ein einziger SubVI-Aufruf - und weiter überhaupt nichts. Das SubVI ist eine sogenannte FGV: Ihr wird (mindestens) ein Steuerwert (Enumerator) direkt und der Wert aus "Neuer Wert" per Variant übergeben. Alle weiteren Operationen werden dann abhängig vom Enumeratorwert in der FGV gemacht - einschließlich der Anzeige der eben eingegebenen Werte am Eingabeelement. Und hierfür brauchst du die Referenz auf den (strict-typisierten) Cluster.
Hinweis:
Eine FGV hat viele weitere Vorteile.