Property-Nodes von Bedienelementen in Sub-VI’s ändern
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!
Property-Nodes von Bedienelementen in Sub-VI’s ändern
Hi Leute,
in meinem LV-Projekt habe ich jede Menge Bedien- und Anzeigeelemente (ca. 70). Dementsprechend groß ist auch das Programm (viele Sub-VI’s). Die Aktualisierung der Werte der Elemente erfolgt im Hauptprogramm.
Manchmal ist es erforderlich die Property-Nodes von Bedienelementen zu ändern. Hauptsächlich geht es dabei um die Eigenschaften „Deaktiviert“. Dies soll aber auch in Sub-VI’s geschehen. Wie geht man dabei am Besten vor?
Man könnte die Refnum des Elementes an das Sub-VI übergeben. Bei den vielen Elementen ist das nicht so die große Idee.
Man könnte die Refnum des Frontpanels an das Sub-VI übergeben. Damit hat man über die Eigenschaft „Bedienelemente[]“ Zugriff auf alle Elemente des Frontpanels und kann über den Namen des gewünschten Elements dessen Refnum bestimmen. Diese Methode ist sicherlich der Performance nicht zuträglich. Ein weiterer Nachteil ist, dass alle Elemente, welche auf Registerkarten platziert sind, nicht in der Liste „Bedienelemente[]“ enthalten sind.
Property-Nodes von Bedienelementen in Sub-VI’s ändern
Funktionale Globale Variable ist IMO das Stichwort.
Ich hab mir diese Tage so etwas gebaut. Ich lese genau über die erwähnte Property Node alle FP Elemente (Label und Reference) ein und speichere sie in der funktionalen Globalen Variable. (ich lasse mir auf dem FP die Caption anzeigen und kann somit kurze und prägnante Variablen-Namen vergeben)
Jetzt kann ich mir darin Funktionen definieren (visible, hide, enable, disable etc pp) und über das FP-Label sie steuern....
Gruss,
Christian
In theory, there is no difference between theory and practice; In practice, there is.
Property-Nodes von Bedienelementen in Sub-VI’s ändern
' schrieb:Man könnte die Refnum des Frontpanels an das Sub-VI übergeben. Damit hat man über die Eigenschaft „Bedienelemente[]“ Zugriff auf alle Elemente des Frontpanels und kann über den Namen des gewünschten Elements dessen Refnum bestimmen. Diese Methode ist sicherlich der Performance nicht zuträglich. Ein weiterer Nachteil ist, dass alle Elemente, welche auf Registerkarten platziert sind, nicht in der Liste „Bedienelemente[]“ enthalten sind.
Da hast du Unrecht. Die ganzen Referenzen sind bloss kaskadiert. Soll heißen: Du hast erst die Referenz auf ein TabControl, von dort kommst du per PropertyNode an das Referenz-Array der Seiten des TabControl, dann IndexArray und dann kommst du per PropertyNode an die alle Bedienelemente einer Seite des TabControls.
Ähnlich sieht es für Cluster, per SplitterBar kreierter Seiten eines FP usw. aus.
MfG, 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!
Property-Nodes von Bedienelementen in Sub-VI’s ändern
<!--quoteo(post=49663:date=23.04.2008 , 15:29:07:name=<<oenk>>)--><div class='quotetop'>ZITAT(<<oenk>> @ 23.04.2008 , 15:29:07) [url=index.php?act=findpost&pid=49663][/url]</div><div class='quotemain'><!--quotec-->Funktionale Globale Variable ist IMO das Stichwort.
Ich hab mir diese Tage so etwas gebaut. Ich lese genau über die erwähnte Property Node alle FP Elemente (Label und Reference) ein und speichere sie in der funktionalen Globalen Variable. (ich lasse mir auf dem FP die Caption anzeigen und kann somit kurze und prägnante Variablen-Namen vergeben)
Jetzt kann ich mir darin Funktionen definieren (visible, hide, enable, disable etc pp) und über das FP-Label sie steuern....
Property-Nodes von Bedienelementen in Sub-VI’s ändern
' schrieb:Hallo Christian!
Kannst Du Dein Vi mal posten?
Gruß,
Ronin
ich glaube nicht...da wird mein Chef was dagegen haben....
es ist aber recht einfach nachzubauen! Ich hab dir hier den ein oder anderen screenshot wie ich es gemacht habe....
Lese FP elemente ein: read_FP-Ref.png
füge Ref und Label in funktionale Globale Variable: add_cDes-Ref.png
beliebige Funktion (bsp: hide): hide_FP-Element
viele Gruesse
Christian
In theory, there is no difference between theory and practice; In practice, there is.
Property-Nodes von Bedienelementen in Sub-VI’s ändern
Hi Leute,
Besten Dank für Eure Antworten.
@Christian
Funktionale Globale Variable ist ein gutes Stichwort. Diese Technik kannte ich bis jetzt noch nicht.
Werde es gleich mal ausprobieren. Wäre es aber in Deinem Beispiel nicht besser, statt eine 2D-Arrays
2 gleichgroße 1D-Arrays zu verwenden? Da könnte man die For-Schleifen in add_cDes-Ref.png weglassen.
Property-Nodes von Bedienelementen in Sub-VI’s ändern
<!--quoteo(post=49726:date=24.04.2008 , 10:03:03:name=<<oenk>>)--><div class='quotetop'>ZITAT(<<oenk>> @ 24.04.2008 , 10:03:03) [url=index.php?act=findpost&pid=49726][/url]</div><div class='quotemain'><!--quotec-->ich glaube nicht...da wird mein Chef was dagegen haben....
es ist aber recht einfach nachzubauen! Ich hab dir hier den ein oder anderen screenshot wie ich es gemacht habe....
Lese FP elemente ein: read_FP-Ref.png
füge Ref und Label in funktionale Globale Variable: add_cDes-Ref.png
beliebige Funktion (bsp: hide): hide_FP-Element
viele Gruesse
Christian[/quote]
Hallo Christian!
Das war der Einstieg, der mir gefehlt hat!
Danke Dir!
Property-Nodes von Bedienelementen in Sub-VI’s ändern
' schrieb:@Christian
... nicht besser, statt eine 2D-Arrays
2 gleichgroße 1D-Arrays zu verwenden?....Gruß Micha
Hi Micha
das ist kein 2D array sondern ein 1D-Array of Cluster [cDescription, refReference].
Die for-Schleife mache ich, um die Daten aus dem Cluster zu extrahieren...
Du hast recht, ich könnte das aber auch in 2 1D-Arrays machen, dann sind die Daten aber nicht automatisch gekoppelt und man muss aufpassen, dass die Indizes in beiden Arrays immer gleich sind.....
Es gibt sicher eine elegantere Lösung als das so zu machen...
Da das Array aber nicht wirklich gross wird sehe ich keine Probleme das so zu lösen...
Wenn jemand einen besseren und genauso sicheren Weg weiss -> immer her damit
Gruss,
Christian
In theory, there is no difference between theory and practice; In practice, there is.