LabVIEWForum.de
konfigurierbare bedienoberfläche - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: konfigurierbare bedienoberfläche (/Thread-konfigurierbare-bedienoberflaeche)

Seiten: 1 2


konfigurierbare bedienoberfläche - lin-info - 30.01.2008 07:43

hallo,

kann mir vielleicht jemand helfen?
ich möchte bedienelemente bzw. anzeigeelemente automatsch vom programm erzeugen lassen.
das heißt, ich habe ein array von stringelementen, in dem z.b. drehschalter oder numerische anzeige stehen kann. das programm soll dann den string-array auslesen und soviele elemente bzw. die richtigen elemente in den frontpanel einfügen.

mfg

Alex


konfigurierbare bedienoberfläche - Lucki - 30.01.2008 08:26

Geht nicht. Man kann aber den Status eines Elementes programmgesteuert "sichtbar" oder "unsichtbar" machen. Man kann also bei der Programmierung alle Elemente im Voraus erzeugen und nur die jeweils benötigten Elemente sind in an einer bestimmten Stelle des Progrrammablaufes sichtbar.
Wie sollte es auch anders funktionieren können? Wie sollten denn die neu erzeugten Elemente sonst verdrahtet werden? Soll das ein schlauer Zauberer machen, der die richtigen Verbindungen errät?


konfigurierbare bedienoberfläche - IchSelbst - 30.01.2008 09:56

Offtopic

' schrieb:Wie sollte es auch anders funktionieren können? Wie sollten denn die neu erzeugten Elemente sonst verdrahtet werden? Soll das ein schlauer Zauberer machen, der die richtigen Verbindungen errät?
ObjektOrientiert?

Objekte, da prinzipiell gleich sind, kann man - wenn auch nur die Referenz - in ein Array legen. Je nach MouseOver etc. kann man einen Index wählen respektive gleich die Referenz bekommen ...

Machbar wäre das. Auch in einer Datenflußsteuerung. Und gerade dann, wenn es eh schon eine Event-Struktur gibt.

Dass es in LV nicht implementiert ist, steht auf einem anderen Blatt. LV ist für andere Sachen da.

Noch was: Die sollen so was blos nicht rein machen. Noch mehr ärger.


konfigurierbare bedienoberfläche - Lucki - 30.01.2008 10:22

' schrieb:ObjektOrientiert?
Wenn ich so ein Wort höre, gehe ich sofort in Demutsstellung und unterwerfe mich. Ich selbst bin allenfalls ein Fachmann für Hardware, der über die Messtechnik zu LabVIEW gestoßen ist. Die höheren Weihen der Programmierkunst sind mir leider versagt, und ich hoffe, ich kann mich weiter ohne diese durchwursteln.
Aber trotzdem: ich habe mich durchaus versucht weiterzubilden. Was ich gelernt habe ist bisher leider nur dies: Man kann mittels Objektorientierung ein einfaches Programm wie "Hello World" ins Gigantische aufblähen und damit - in Verbindung mit dem Vokabular an neuen Begriffen - mächtigen Eindruck schinden.


konfigurierbare bedienoberfläche - eg - 30.01.2008 10:24

Warum soll denn das nicht gehen?

Lv80_img


konfigurierbare bedienoberfläche - jg - 30.01.2008 10:27

@Eugen:

Das war aber nicht die Frage. Alex will, wenn in einem String-Element des Arrays "Numeric Control" drin steht, dass dann zur Laufzeit ein Numeric Control auf dem FP erzeugt wird. Das geht ja nicht.

MfG, Jens


konfigurierbare bedienoberfläche - eg - 30.01.2008 10:30

Dann nimmt man statt dem String-Array (wie bei mir im Beispiel) ein oder mehrere Arrays mit Numeric-Controls oder anderen Elementen. Die Anzahl der Elemente wird wie gezeigt gesteuert und wenn die Anzahl gleich 0 ist, dann kann man das Array unvisible machen.

Andere Frage wäre, was macht er damit im Block Diagramm?


konfigurierbare bedienoberfläche - IchSelbst - 30.01.2008 11:06

' schrieb:Dann nimmt man statt dem String-Array (wie bei mir im Beispiel) ein oder mehrere Arrays mit Numeric-Controls oder anderen Elementen. Die Anzahl der Elemente wird wie gezeigt gesteuert
Dieses Verfahren würde ich verwenden. Zumindest, wenn der Typ des Bedienelementes zur Entwicklungszeit bekannt ist. (Bei unbekannten Typen sieht sie Sache schon wieder anderes aus.)

Was hiermit schwieriger wird, ist folgendes: Bei dann dieser tabellarischen Anordnung der unterschiedlichen Bedienelemente sollen eben diese Bedienelemente an der selben (!) position sitzen.
[*grübel*]
Man wüsste wohl einen Cluster machen mit hintereinander liegenden Bedienelementen. Und immer das, was man haben will, wird sichtbar gemacht. Der Rest unsichtbar.

Zitat:Andere Frage wäre, was macht er damit im Block Diagramm
Steuerung über Enumeratoren - muss funktionieren.

Ich sehe kein Problem darin, prinzipiell bekannte Bedienelemente "zur Laufzeit per Array-Index" zu erstellen. Nur eine große Aufgabe.


konfigurierbare bedienoberfläche - eg - 30.01.2008 11:21

Wenn ich sowas machen sollte, dann würde ich pro Bedienelement ein VI erstellen, das z.B. bei Value Change des Bedienelements ein User Event erzeugt. Vor dem dynamischen Start des ausgewählten VIs (= Bedienelement) wird eine Referenz auf das User Event im Haupt VI an das zu startende VI übergeben.
Das Main VI soll dann aus mehreren Subpanels bestehen, sobald ein Bedienelement ausgewählt wird:
Referenz auf das User Event des Main VIs abergeben
VI in einem des Subpanels im Main VI platzieren
VI starten

Also möglich ist es.


konfigurierbare bedienoberfläche - IchSelbst - 30.01.2008 11:24

Ich bin schon wieder offtopic. Diese Verwarnung riskier ich gerne.
Offtopic

' schrieb:gehe ich sofort in Demutsstellung und unterwerfe mich.
Ich hoffe doch sehr, das war zynisch (oder so).

In meinem Delphi-Forum - also was mit objektorientiert - kannst du programmier-technisch (mal so hingesagt) genau den selben Mist lesen wie hier in Datenfluß-technisch. Und höhere Weihen der Programmierkunst kannst du auch in Datenfluß-technisch, also mit LV, erreichen. "Weihen der Programmierkunst" sind nicht vom Typ der Programmiersprache abhängig. Und außerdem: Auch wenn du objektorientiert programmierst, heißt das noch lange nicht, dass du nur dasitzt und ständig neue Klassen erstellst. Das ist wie mit Autos: Ständig neue Features. Warum aber kommen dann viele Leute noch immer mit einem kleinen Golf zurecht? Ich hab noch nie eine eigene Klasse erstellen müssen. Es gibt mittlerweile alles fix und fertig. Es ist hier wie dort: Alles nur Zusammenklicken von bestehenden Elementen.