04.02.2008, 14:07
(Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2008 14:25 von t4b-1re-2.)
Beitrag #1
|
t4b-1re-2
LVF-Gelegenheitsschreiber
Beiträge: 155
Registriert seit: May 2007
8.5
2007
de
99*
Deutschland
|
frontpanelelemente dynamisch (zur Laufzeit) erzeugen
Hallo,
ich bin grad auf der Suche nach Hinweisen, ob und wie ich Frontpanelelemente - z.b. eine Stringanzeige, oder eine boolsche Anzeige zur Laufzeit erstellen kann. Vielleicht habt ihr ja Hinweise oder gar Beispiel-Diagramme. würde mich freuen.
Viele Grüße
t4b-1re-2
Edit: Ups, Mist, völlig falsches Forum...:(Kann irgendein Admin das bitte nach "Allgemeines verschieben"?!
2. Edit: Grrr, offenbar nicht mein Tag... übersehen, dass das Thema hier: http://www.LabVIEWforum.de/index.php?showt...amp;hl=Laufzeit
bereits diskutiert wird...
|
|
|
04.02.2008, 14:24
Beitrag #2
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
frontpanelelemente dynamisch (zur Laufzeit) erzeugen
|
|
|
04.02.2008, 14:36
Beitrag #3
|
RoLe
LVF-Guru
Beiträge: 1.236
Registriert seit: Jul 2007
-
1997
en
0
Schweiz
|
frontpanelelemente dynamisch (zur Laufzeit) erzeugen
Geht nicht, gibt's nicht
Weis jetzt nicht, ob ich das hier schreiben sollte, aber trotzdem.
Mit "versteckten" Hilfsmittel, dem LabVIEW VI Scripting, wäre es schon möglich, aber nicht empfehlenswert.
Für alle die es genauer wissen möchten, hier die Warnung (nur englisch) dazu:
http://forums.lavag.org/VI-Scripting-Rea...t1207.html
Gruss
Roland
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
|
|
|
04.02.2008, 14:44
Beitrag #4
|
|
|
04.02.2008, 14:52
Beitrag #5
|
RoLe
LVF-Guru
Beiträge: 1.236
Registriert seit: Jul 2007
-
1997
en
0
Schweiz
|
frontpanelelemente dynamisch (zur Laufzeit) erzeugen
Ach so, hab ich nicht gewusst.
Bin halt einer von gestern.
Brauche noch LV7.1 und Win2000.
LV8.2 hab ich nur um die VI's vom Forum zu öffnen, wobei ich meistens auch hier scheitere, weil bereits LV8.5
Sorry und Gruss
Roland
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
|
|
|
04.02.2008, 14:53
Beitrag #6
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
frontpanelelemente dynamisch (zur Laufzeit) erzeugen
Ich verstehe trotz von mir vorgeschlagener Lösung mit SubPanels nicht, wo man sowas verwendet? Ich meine was bringt das Platzieren neuer Elemente auf dem FP, wenn man diese Elemente nur bedingt im Programm (BD) verwenden kann. Kann mich jemand bitte schlauer machen?
|
|
|
04.02.2008, 17:40
Beitrag #7
|
IchSelbst
LVF-Guru
Beiträge: 3.695
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
frontpanelelemente dynamisch (zur Laufzeit) erzeugen
' schrieb:Ich verstehe trotz von mir vorgeschlagener Lösung mit SubPanels nicht, wo man sowas verwendet? Ich meine was bringt das Platzieren neuer Elemente auf dem FP, wenn man diese Elemente nur bedingt im Programm (BD) verwenden kann. Kann mich jemand bitte schlauer machen?
Du musst das zuerst einmal prinzipiell sehen - also von der Programmiersprache unabhängig.
Wenn ich zur Entwicklungszeit noch nicht weiss, wie mein Datensatz explizit aussieht - keine Sorge, sowas gibt es - dann kann ich mir aber trotzdem zur Entwicklungszeit einen Algorithmus ausdenken, wie ich aus vordefinierten Elementen (mindestens solche müssen aber bekannt sein) z.B. per Rekursion den Datensatz erstelle. Einen solchen Datensatz kannst du dir wie einen Baum vorstellen, dessen Verästelung nach und nach durch den Anwender erstellt wird. Der Entwickler hat jetzt also den Gedanken, eben solche vordefinierten Elemente zur Laufzeit zu erstellen. Jedes solche Element hat z.B. ein Pulldownmenü, in dem weitere, elementspezifische Äste etc. erstellt werden können. Der Anwender ist jetzt also in der Lage, aus vordefinierten Elementen einen spezifischen Datensatz zu generieren.
Der Entwickler hat sich also für die Lösung "Erstellung während der Laufzeit" entschieden. Jetzt kommt die Programmiersprache ins Spiel. Da der Programmierer aber nicht weiss, wie eine solche Erstellung in LV realisiert wird, fragt er ganz einfach im Forum nach. Die werden ihm dann schon sagen wie es geht - und würden ihm dann auch sagen wie es im BD umgesetzt wird. Da der Fragesteller nicht weiss, wie man diese Elemente erstellt, woher soll er dann wissen, dass man diese Elemente nur bedingt im BD verwenden kann. Es könnte ja sein, dass es geht.
Zugegeben: Das mit dem zur Laufzeit erstellen hab ich bisher auch nur ein einziges Mal gemacht (in Delphi). Normalerweise kommt man immer mit zur Entwicklungszeit bekannten Datentypen aus. Im schlimmsten Falle wird z.B. ein String verwendet, der Daten enthält. Dazu gibt es einen Enumerator, der die Daten typisiert. Das alles in ein Array. nd schon hat mach einen Datensatz, mit dem man im BD arbeiten kann und den man im FP ansehen kann.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
04.02.2008, 21:57
Beitrag #8
|
thomas.sandrisser
LVF-SeniorMod
Beiträge: 1.298
Registriert seit: Sep 2005
xxxx
2005
EN
78759
United States
|
frontpanelelemente dynamisch (zur Laufzeit) erzeugen
Das dynamische erzeugen von FP Elementen waehrend sich das VI im execution mode befindet ist ausgeschlossen.
Man kann das ganze soweit offen halten, indem man sich entsprechend des Datentyps und/oder dem Wunsch des Anwenders entsprechend ein neues VI mit "freien" Elementen erstellt, via SubPanel im HauptVI einbindet und per VI Server bedient.
Aber, seit 8.0 ist Scripting nicht mehr offen, somit hilft das alles nichts...
|
|
|
04.02.2008, 22:40
Beitrag #9
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
frontpanelelemente dynamisch (zur Laufzeit) erzeugen
' schrieb:Das dynamische erzeugen von FP Elementen waehrend sich das VI im execution mode befindet ist ausgeschlossen.
Man kann das ganze soweit offen halten, indem man sich entsprechend des Datentyps und/oder dem Wunsch des Anwenders entsprechend ein neues VI mit "freien" Elementen erstellt, via SubPanel im HauptVI einbindet und per VI Server bedient.
Aber, seit 8.0 ist Scripting nicht mehr offen, somit hilft das alles nichts...
Nicht unbedingt über VI Server, siehe mein Beispiel im benachbarten Thema.
|
|
|
05.02.2008, 08:16
|
thomas.sandrisser
LVF-SeniorMod
Beiträge: 1.298
Registriert seit: Sep 2005
xxxx
2005
EN
78759
United States
|
frontpanelelemente dynamisch (zur Laufzeit) erzeugen
Ich glaube, dass ist triffts was ich hier beschrieben habe, nur mit dem Unterschied, dass du schon fertige VIs zur Verfuegung hast.
Ad Referenz schließen -> LabVIEW wird immer vorsichtiger mit Referenzen. D.h. wenn du Application Instance uebergreifend hantierst (wissentlich oder unwissentlich) und du schließt eine Referenz auf ein VI, wird dessen Ausfuehrung gestoppt. In deinem Fall ist das Problem das SubPanel. Gleiches Phaenomen tritt auf, wenn du Target-uebergreifend (Target => neue App Inst) VIs per VI Server startest (klassisches Beispiel ist der Aufruf eines VIs vom Windows auf einem RT Host.) Das Problem tritt nicht auf, wenn du in der gleichen App Inst bleibst.
|
|
|
| |