16.08.2018, 09:53
Um die Programmoberfläche für den Anwender übersichtlich zu gestalten, werden bestimmte Bedienelemente je nach Anforderung ausgegraut / eingeblendet bzw. aktiviert, außerdem werden Cluster, Tabs usw. genutzt. Da das de- aktivieren der Bedienelemente über Property Nodes viel Platz im Programmcode einnimmt, will ich das in ein Sub-VI auslagern.
Es wird schon seit einiger Zeit ein Sub-VI (Set Enable State on Multiple Controls) verwendet, aber die benötigten Referenzen benötigen nicht (viel) weniger Platz.
Die Referenzen in ein Array oder ein Cluster (Darstellung als Icon) zu packen, würde Platz sparen.
Das Erzeugen eines entsprechenden Arrays bzw. Cluster ist mir leider nicht gelungen.
Ein Sub-VI mit mehreren Szenarien in einer Case-Struktur könnte eine weitere Möglichkeit sein.
Die Zustände der Controls würde im Sub-VI in entsprechenden Cases (Szenarien) festgelegt werden und das Sub-VI im Hauptprogramm mit dem Szenarien-Namen aufgerufen werden.
Dazu müssten alle Controls auf dem Panel erfasst werden, die Referenzen und Labels in ein Array gepackt werden. Wenn die Labels auch noch in einem Cluster stehen würden, könnte man diese über Unbundle by Name auswählen und damit die Referenzen zuweisen.
Das Auslesen der Controls ist kein Problem, aber das mit den Labels in einem Cluster schon.
Von den Umsetzungsproblemen abgesehen, finde ich beide Möglichkeiten nicht ganz optimal.
Hat jemand eine bessere Idee oder sogar schon eine fertige Lösung im Einsatz?
Es wird schon seit einiger Zeit ein Sub-VI (Set Enable State on Multiple Controls) verwendet, aber die benötigten Referenzen benötigen nicht (viel) weniger Platz.
Die Referenzen in ein Array oder ein Cluster (Darstellung als Icon) zu packen, würde Platz sparen.
Das Erzeugen eines entsprechenden Arrays bzw. Cluster ist mir leider nicht gelungen.
Ein Sub-VI mit mehreren Szenarien in einer Case-Struktur könnte eine weitere Möglichkeit sein.
Die Zustände der Controls würde im Sub-VI in entsprechenden Cases (Szenarien) festgelegt werden und das Sub-VI im Hauptprogramm mit dem Szenarien-Namen aufgerufen werden.
Dazu müssten alle Controls auf dem Panel erfasst werden, die Referenzen und Labels in ein Array gepackt werden. Wenn die Labels auch noch in einem Cluster stehen würden, könnte man diese über Unbundle by Name auswählen und damit die Referenzen zuweisen.
Das Auslesen der Controls ist kein Problem, aber das mit den Labels in einem Cluster schon.
Von den Umsetzungsproblemen abgesehen, finde ich beide Möglichkeiten nicht ganz optimal.
Hat jemand eine bessere Idee oder sogar schon eine fertige Lösung im Einsatz?