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!
ich habe ein Array mit 8 Elementen, die Elemente sind Cluster. Soweit so gut.
Nun übergebe ich die Referenz des Arrays an ein SubVI.
In diesem möchte ich ein Array aus Referenzen aus der übergebenen Referenz erstellen, genauer gesagt ich habe eine For Schleife die 8 mal durchläuft. In jedem Durchlauf möchte ich die entsprechende Referenz auf das Cluster übergeben und den Wert auslesen.
Das Cluster und das Array liegen als StrictTypDef vor.
Hat jemand eine Idee?
Ich würde mich ja gerne mit Dir geistig duellieren, aber ich sehe Du bist unbewaffnet.
--------------------
Der Vorteil von Klugheit ist, dass man sich dumm stellen kann. Das Gegenteil ist schwieriger.
--------------------
Damit immer mehr immer weniger tun können, müssen immer weniger immer mehr tun.
' schrieb:In diesem möchte ich ein Array aus Referenzen aus der übergebenen Referenz erstellen, genauer gesagt ich habe eine For Schleife die 8 mal durchläuft. In jedem Durchlauf möchte ich die entsprechende Referenz auf das Cluster übergeben und den Wert auslesen.
Zu was soll das gut sein? Du kannst doch den Wert direkt über ein Property "Value" des Arrays + ne FOR-Schleife auslesen...auch im SubVI...zu was sollen da "Referenzen auf Array-Elemente" gut sein...die es außerdem auch gar nicht gibt?!
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
11.10.2007, 18:36 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2007 18:36 von jg.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Array Element als Referenz von Referenz
Krass! Wie kommt man denn auf so was?
Was wird denn da überhaupt gemacht?
Ich würde das so machen.....
Gruß Markus
' schrieb:@Achim: Bis hierhin stimme ich dir voll zu.
Aber hier muss ich dir widersprechen. Bsp. gefällig:
(zum Bild: Cluster im Array-Element besteht bei mir aus String, Bool und Numeric).
Aber das ist natürlich das Pferd von hinten aufgezäumt.
MFG, Jens
(VI LV 8.0)
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Krass! Wie kommt man denn auf so was?
Was wird denn da überhaupt gemacht?
Ich gehe davon aus, dass du auf mein Bsp. ansprichst.
Also:
1. Setzen der PropertyNode IndexVals bringt das ArrayElement mit Index x an die erste sichtbare Stelle.
2. Jetzt hole ich per PropertyNode "Array Element -> Reference" wirklich die Referenz auf das Element x.
3. Um jetzt auf Cluster-Elemente zugreifen zu können, muss die allgemeine Control-Referenz zur Referenz auf einen Cluster gewandelt werden.
4. Auf die Elemente eines Clusters kommt man wieder per PropertyNode "Controls[]", die ein Array mit Referenzen auf alle Cluster-Control-Elemente zurückgibt.
5. Dann per Index-Array entsprechende Referenz rausgreifen, die muss wieder in die richtige Control-Klasse gewandelt werden.
6. Per PropertyNode "Value" Wert auslesen, da bei Numeric noch die Info zum exakten Datentyp fehlt, noch das "Variant To Data" wandeln.
Alle Klarheiten beseitigt?
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!
' schrieb:@Achim: Bis hierhin stimme ich dir voll zu.
Aber hier muss ich dir widersprechen. Bsp. gefällig:
Jou, wenn man's so sieht...hast natürlich recht...so kompliziert kann ich aber nicht denken ...Aber: Das sind keine Referenzen auf Array-Elemente n, n+1, n+2, ... sondern nur ne allgemeine Referenz auf...ich sag mal..."mögliche Array-Elemente"...du musst dir ja schon das einzelne Array-Element, das du auslesen willst über den Index-Value in deinem ersten Node auswählen. Gut gut, du kannst die ganze Mimik natürlich in ne FOR-Schleife packen, dann hast du alle Referenzen verfügbar. Das wäre dann wohl das, was Benjamin wollte.
Aber ich kann immer noch nicht nachvollziehen, warum er es so "verzwickt" gestalten will...vielleicht kommt er durch Markus Vorschlag auf nen anderen Weg...oder er kann mal nachvollziehbar seine Beweggründe erläutern...
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Also als Hintergrund. ich habe ein SubVI, dass als Eingang eine Referenz eines Clusters bekommt und dieses modifiziert.
Dieses SubVI wird von einem VI aufgerufen dessen Eingang ein Array von Clusterreferenzen ist. Diese werden in einer For-Schleife an das SubVI übergeben. Ich möchte an dieser Stelle die Referenz übergeben, da sich während der Abareitung des SubVIs die eigentlichen Clusterwerte ändern können müssen. Würde ich den Wert übergeben hätte ich ja nur den aktuellen Wert und nicht mehr die Änderungen.
Mein aktuelles Workaround: Ich erstelle 8 Cluster. Von diesen erstelle ich eine Referenz (8 Stück) und erstelle aus diesen 8 Referenzen ein Array. Funktioniert toll. Aber braucht Platz und ist sicher nicht die eleganteste Lösung.
Ich würde mich ja gerne mit Dir geistig duellieren, aber ich sehe Du bist unbewaffnet.
--------------------
Der Vorteil von Klugheit ist, dass man sich dumm stellen kann. Das Gegenteil ist schwieriger.
--------------------
Damit immer mehr immer weniger tun können, müssen immer weniger immer mehr tun.
15.10.2007, 07:29 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 13:35 von jg.)
ich habe im Moment genau das gleiche Problem. Es geht um eine einfache "Projektübersicht".
Ich habe ein Array aus Clustern, die Wiederum ein Array enthalten. In der GUI sollen genau so viele "Zeilen" des inneren Arrays angezeigt werden, wie es Einträge hat. Leider gibt es bei Arrays kein Häkchen "Anzeigegröße automatisch anpassen" . Also will ich die Anzahl der angezeigten Zeilen über ein Propperty Node mittels Referenz anpassen.
Soweit so gut, nur leider gelingt es mir ums Verrecken nicht an die Referenzen aller Array-Elemente heranzukommen. Wenn ich es über "Indexwerte" versuche ändert sich ja leider auch die Ansicht des Arrays :/
Oje, hoffentlich war das jetzt verständlich? Im Beispiel wird es sicher deutlicher
Wenn es nur 1 Projekt gibt, lassen sich problemlos "Projekt-Tasks" hinzufügen oder entfernen. Gibt es zwei, flackert die Anzeige ständig weil der "Indexwert" (um die Referenzen herauszufinden) ständig geändert wird.
Es muss doch eine Möglichkeit geben sich die Referenzen ALLER Array-Elemente und nicht nur des "Aktuellen" ausgeben zu lassen? Habt ihr eine Idee?
Zitat:Es muss doch eine Möglichkeit geben sich die Referenzen ALLER Array-Elemente und nicht nur des "Aktuellen" ausgeben zu lassen?
Nein, gibt es nicht.
Grund: alle Arrayelemente haben die gleichen Eigenschaften, nur ihr Wert unterscheidet sich! Und der Wert wird über die Value-Property das Arrays selbst gesetzt…
Zitat:Also will ich die Anzahl der angezeigten Zeilen über ein Propperty Node mittels Referenz anpassen.
Dafür braucht man keine Referenz auf das Arrayelement, sondern nur auf das Array selbst: "Spalten-" oder "Zeilenanzahl"!
Aber auch hier gilt: Die Arrays innerhalb der Cluster teilen sich einen Property-Satz, da sie ja nur Elemente des äußeren Arrays sind. Alle Cluster zeigen ein Array mit gleichen Zeilen-/Spaltenanzahl!