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!
24.03.2010, 10:39 (Dieser Beitrag wurde zuletzt bearbeitet: 24.03.2010 23:00 von jg.)
sitze gerade über meiner Projektarbeit und komme auf keine Lösung. Ich habe 6 Stringboxen auf meinen Frontpanel und möchte diese auch in einen Subvi manipulieren können z.B ausgrauen.
Dazu benutze ich auf jedes Stringboxelement eine Referenz und bündle diese zu einen Array von typ String Refnum.
Darauf lässt sich wieder eine Refernz erstellen und die einzelnen Refnumern der Stringboxen im Unterprogramm auslesen.
Das klappt, jedoch schaff ich es nicht jetzt mit Eigenschaftsknoten die Stringboxen zu füllen oder auszugrauen.
Würde mich freuen, wenn mir jemand weiterhelfen könnte.
' schrieb:Dazu benutze ich auf jedes Stringboxelement eine Referenz und bündle diese zu einen Array von typ String Refnum.
Zitat:Darauf lässt sich wieder eine Refernz erstellen und die einzelnen Refnumern der Stringboxen im Unterprogramm auslesen.
Übergib das Array of StrRef als ganz normalen Parameter an das Unterprogramm. Dann kannst du ganz einfach über ArrayIndizieren auf die Referenzen zugreifen.
Mach vom ArrOfStrRef ein Bedienelement (Kontextmenü->Erstelle->Bedienelement). Dieses Bedienelement schneidest du mit Ctrl-X aus. In das SubVI fügst du das Bedienelement dann mit Ctrl-V ein. Als Eingangsparameter definieren und fertig.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
danke für die Antwort, habe nach langen grübeln doch eine Möglichkeit gefunden die Refernzen in ein Array zusammenzufassen. Danach sind die selbigen über ein Schieberegiester in jeden Teil meiner State Machine verfügbar . Vielleicht eine etwas umständliche Methode, aber sie funzt.
LabVIEW Version 2009
mfg
24.03.2010, 20:04 (Dieser Beitrag wurde zuletzt bearbeitet: 24.03.2010 20:06 von IchSelbst.)
' schrieb:eine Möglichkeit gefunden die Refernzen in ein Array zusammenzufassen. Danach sind die selbigen über ein Schieberegiester in jeden Teil meiner State Machine verfügbar
Ich würde so Sachen wie diese "nach spezifische Klasse" nur verwenden, wenn's unbedingt notwendig ist. Bisher sehe ich bei deiner Anwendung hierfür keine Notwendigkeit.
Warum willst du unbedingt die Referenz auf das Array übergeben?
Nachtrag:
Ist was Verwenden des Property "Wert(signalisierend)" notwendig oder reicht dir nicht das normale Werte-Property? Das Property "Wert(signalisierend)" hat eine Spezialfunktion - es löst einen Event aus!
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Ich verwende oft Referenzen-Arrays, um über Property-Nodes auf deren Eigenschaften in einer Schleife zugreifen zu können. Das Bündeln solcher Arrays ist jedoch ab einer höheren Anzahl von Elementen sehr mühsam. Gibt es eine Möglichkeit diese Referenzen-Arrays automatisch bzw. programmatisch zu erzeugen? Kann man z.B. bei einem Button-Array irgendwie auf die Referenzen der einzelnen Elemente (4096 Buttons!) zugreifen, um z.B. deren BoolText zu ändern?
' schrieb:Gibt es eine Möglichkeit diese Referenzen-Arrays automatisch bzw. programmatisch zu erzeugen?
Prinzipiell Ja.
Panels (z.B. Frontpanel, Cluster etc.) haben ein Property namens "Panelelemente". Dieses Property enthält die Referenzen auf alle Elemente als Array of Ref.. Diese Referenzen sind allgemeine Objekt-Referenzen. Du kannst dir jetzt aus diesem Array genau die Referenzen herausholen, auf deren Elemente du per Referenz zugreifen willst. (Dazu fragst du per Referenz das Element, wie es heißt ...)
Zitat:Kann man z.B. bei einem Button-Array irgendwie auf die Referenzen der einzelnen Elemente (4096 Buttons!) zugreifen, um z.B. deren BoolText zu ändern?
Nein.
Arrays haben die gute/schlechte Eigenschaft, dass alle Eigenschaften der einzelnen Elemente identisch sind - außer die Eigenschaft "Wert". Du kannst also den Wert eines einzelnen Elementes ändern, nicht aber den Boolschen Text. Willst du den "Boolschen Text" ändern, muss das Element ein solches sein, bei dem "Boolscher Text" der Wert ist.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
10.06.2010, 18:22 (Dieser Beitrag wurde zuletzt bearbeitet: 10.06.2010 18:26 von Lucki.)
' schrieb:Das Bündeln solcher Arrays ist jedoch ab einer höheren Anzahl von Elementen sehr mühsam. Gibt es eine Möglichkeit diese Referenzen-Arrays automatisch bzw. programmatisch zu erzeugen? Kann man z.B. bei einem Button-Array irgendwie auf die Referenzen der einzelnen Elemente (4096 Buttons!) zugreifen, um z.B. deren BoolText zu ändern?
Ich vermeide das Bündeln im BD dadurch, daß ich auf dem FP die Elemente zu Clustern zusammenfasse und dann im BD als erstes die Funktion "Cluster zu Array" verwende. Wenn man es geschickt macht, hat man durch die Clusterung kaum Einschränkungen in der FP-Gestaltung - im Gegensatz zur Bündelung in Arrays. Im Beispiel unten z.B merkt niemand, daß die Elemente doppelt verclustert sind.
Man kann das VI übrigens noch mehr vereinfachen, bzw. es enthält Nonsens-Code: : Wenn man an das Sub-VI (Hier repräsentiert durch die For-Schleife) eine Referenz übergibt, kann man natürlich über diese auch die Werte lesen. Es ist dann unnötig, zusätzlich zur Referenz über einen zweiten Eingang noch mal die Werte direkt zu übergeben.
Ich verwende oft Referenzen-Arrays, um über Property-Nodes auf deren Eigenschaften in einer Schleife zugreifen zu können. Das Bündeln solcher Arrays ist jedoch ab einer höheren Anzahl von Elementen sehr mühsam. Gibt es eine Möglichkeit diese Referenzen-Arrays automatisch bzw. programmatisch zu erzeugen?
sorry wegen der späten Antwort. Konnte leider nicht gleich an diesem Projekt weiter arbeiten. Habe mich auch erst mal mit den JKI-Toolkits vertraut machen müssen. Jetzt ist es mit dem Right-Klick-Framework gelungen, ein Array of References automatisch zu erstellen. Ein tolles Tool. Einen Riesen Dank an Jens G für den Hinweis. Werde das dann demnächst mit 4096 Buttons testen. Wahrscheinlich muss ich zunächst Teil-Arrays erstellen und diese dann nachher zusammenfassen, da sonst der Bildschirm zu klein ist.
Auch vielen Dank für die Hinweise von Lucki und IchSelbst. Mit eurer Hilfe konnte ich das Problem des automatischen Zugriffes auf den Boolschen Text der Buttons lösen. Ich hänge mal einen Screen shot vom Source code (LV 8.6.1) an.