LabVIEWForum.de - Referenzen auf Objekte dynamisch ermitteln

LabVIEWForum.de

Normale Version: Referenzen auf Objekte dynamisch ermitteln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute,

ich brauche dringend eure Hilfe Smile

Ich habe 50 numerische Elemente, die der Reihenfolge nach beschriftet sind (Element 1, Element 2... usw.)

Beim Starten meines Programms möchte ich diese alle unsichtbar machen. Ist es möglich über den Beschriftungsnamen (könnte ich mir in einer for Schleife zu jedem Element leicht erstellen lassen) für das jeweilige Element eine Referenz zu erstellen, um anschließend über einen Eigenschaftsknoten die Sichtbarkeit zu ändern?

Hoffe ihr könnt mir helfen.

Beste Grüße,
Walter
Jup. Über die Panel-Eigenschaft "Controls[]" kommst du an alle Bedienelemente ran, die du dann nach belieben filtern und verändern kannst.
(16.07.2013 08:57 )Walter_H schrieb: [ -> ]Ich habe 50 numerische Elemente,

Warum willst du sie dann dynamisch ermitteln? Du könntest das doch einfach statisch machen, dann wäre der notwendige Speicherbereich auch schon reserviert.

Ansonsten würde ich sie evtl. (Reorder Controls) auf dem FP so nummerieren, dass du sie per PropertyNode "FP.Controls" z.B. die ersten 50 Referenzen ausliest und verwendest.

Wenn du "alle" holst, könntest du aus diesem Referenzen-Array auch die Labels ermitteln und wärst dann dynamisch...ist aber m. E. unnötiger Programmieraufwand und auch unnötiger Code!

A.
@Achim:
Manchmal will man ein subVI ja auch für verschiedene Zwecke wiederbenutzen. Da ist es dann schon nützlich, ein VI zu schreiben, welches die Referenzen aller (nach Namen gefilterten) Controls eines anderen VIs bestimmt! Und wie der OP schon schrieb: es ist mühselig, 50+ Referenzen "von Hand" anzulegen...
Ja schon klar...wenn man das öfters braucht, dann ist's schon eher sinnvoll. Ob das dann aber tatsächlich so ohne weiteres verwendbar ist, kann man schlecht sagen. Mindestens die Filterkriterien müssten ja vermutlich doch jedes Mal neu programmiert werden.

Und BTW: Wo schrieb er, dass es händisch mühselig ist? Ja klar ist es das, aber ich konnte das nicht entdecken.

Und außerdem: Ich halte es für nur bedingt komfortabel, so viele verschiedene gleichartige Anzeigen einzeln im BD und auf dem FP zu verwalten...da müssen doch Cluster oder Arrays her!

A.
Hallo Achim,

Zitat:Mindestens die Filterkriterien müssten ja vermutlich doch jedes Mal neu programmiert werden.
Jein. Man sollte sich an ein Namensschema bei den Controls halten. Und man muss sich einmal überlegen, wie "tief" man verschachteln will, Stichwort Cluster in Array in Tabcontainer...

Zitat:Ich halte es für nur bedingt komfortabel, so viele verschiedene gleichartige Anzeigen einzeln im BD und auf dem FP zu verwalten...da müssen doch Cluster oder Arrays her!
Ich halte es für extrem komfortabel!
Ich habe hier mehrere Prüfstände, jeder Prüfstand mit seinen Parametern und (glücklicherweise) "genormten" Signalnamen etc.
- Ich kann mit diesen Namen Vorgabeparameter aus einer Datei laden und über den Signalnamen in das passende Control schreiben.
- Ich kann mit diesen Namen Werte aus den Controls lesen und in einer Datei sichern.
- Ich kann dies mit einem (1) subVI für alle Prüfstande machen, unabhängig von den jeweils verwendeten Namen.
- Ich habe "Hardware"-Namen, die über das Label verknüpft sind und "Software-Kanäle", die über die Caption verknüpft sind. Lässt sich alles mit einigen wenigen subVIs verwalten - unabhängig vom Prüfstand...

Ich muss nur beim Anlegen der Controls auf das korrekte Label achten. Dann einfach die Controls auf dem UI verteilen, die paar subVIs im BD "einstreuen" und fertig ist die komplette Bedienoberfläche für den Prüfstand!
Hallo zusammen,

ich habe ein ähnliches Problem wie Walter.
Ich bin dabei einen Teststand einzurichten, bei dem zyklisch 500 Plätze abgefragt werden müssen.
Mein derzeitiger Plan ist, die Darstellung der Plätze über 500 Schaltflächen zu realisieren.
Diese sollen sobald der Test losgeht gelb wenn der Test erfolgreich war grün und wenn nicht erfolgreich rot sein.
Zusätzlich sollte wenn ich auf die entsprechende Schaltfläche klicke ein dazugehöriges Testergebnis angezeigt werden.

Wie kann ich jetzt z.B. über eine Schleifeniteration/Schieberegister die einzelnen Schaltflächen ansprechen? (Beschriftung z.B. Testplatz 2; Testplazt 2; ... Testplatz n)

Die Panel-Eigenschaft "Controls[]" wie im Bild dargestellt habe ich nicht gefunden?!

Ich nutze Labview 2012 und bin blutiger Anfänger.

Über eure Unterstützung bzw. ein kleines Beispiel VI wäre ich sehr dankbar.

Vielen Dank

Y.
ich verweise mal auf mein eigenen Post von vor einigen Tagen
http://www.labviewforum.de/Thread-GObjec...gselemente

Dort habe ich ebenfalls die Referezen aller Objekte entsprechend gefiltert und sortiert.
Inzwischen habe ich ein SubVI mit einem VI Referenz als Eingang und das VI liefert mir
die Referenzen der Buttons, LEDs, Gestaltungselemente etc.

Stefan
Hi,
danke für die schnelle Antwort.

Den Post habe ich gestern auch gelesen.
Allerdings habe ich nicht gefunden, ob ich irgendwie ein einzelnes Objekt ansprechen kann.
Eine Filterung nach Typ oder Klasse hilft mir nicht weiter, da ich jedem einzelnen Objekt entsprechendes Testergebnis zuordnen muss.
Also eine jeweils eindeutige Verknüpfung von den 500 Schleifendurchläufen zu den 500 einzelnen Objekten...
Hallo YBlade,

du kannst natürlich nicht nur nach Typ, sondern auch nach Label/Caption filtern...
Seiten: 1 2
Referenz-URLs