30.01.2008, 07:43
Beitrag #1
|
lin-info
LVF-Neueinsteiger
Beiträge: 2
Registriert seit: Oct 2007
8.5 student
-
kA
78112
Deutschland
|
konfigurierbare bedienoberfläche
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
|
|
|
30.01.2008, 08:26
(Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2008 08:29 von Lucki.)
Beitrag #2
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
konfigurierbare bedienoberfläche
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?
|
|
|
30.01.2008, 09:56
(Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2008 10:07 von IchSelbst.)
Beitrag #3
|
IchSelbst
LVF-Guru
Beiträge: 3.695
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
konfigurierbare bedienoberfläche
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
30.01.2008, 10:22
(Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2008 10:31 von Lucki.)
Beitrag #4
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
konfigurierbare bedienoberfläche
' 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.
|
|
|
30.01.2008, 10:24
Beitrag #5
|
|
|
30.01.2008, 10:27
Beitrag #6
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
konfigurierbare bedienoberfläche
@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
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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
30.01.2008, 10:30
(Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2008 10:34 von eg.)
Beitrag #7
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
konfigurierbare bedienoberfläche
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?
|
|
|
30.01.2008, 11:06
Beitrag #8
|
IchSelbst
LVF-Guru
Beiträge: 3.695
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
konfigurierbare bedienoberfläche
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
30.01.2008, 11:21
Beitrag #9
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
konfigurierbare bedienoberfläche
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.
|
|
|
30.01.2008, 11:24
|
IchSelbst
LVF-Guru
Beiträge: 3.695
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
konfigurierbare bedienoberfläche
Ich bin schon wieder offtopic. Diese Verwarnung riskier ich gerne.
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
| |