LabVIEWForum.de
frontpanelelemente dynamisch (zur Laufzeit) erzeugen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: frontpanelelemente dynamisch (zur Laufzeit) erzeugen (/Thread-frontpanelelemente-dynamisch-zur-Laufzeit-erzeugen)

Seiten: 1 2


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - t4b-1re-2 - 04.02.2008 14:07

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...


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - eg - 04.02.2008 14:24

Das Thema hatten wir schon letzte Woche:

http://www.LabVIEWforum.de/konfigurierbare...eche-t8458.html


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - RoLe - 04.02.2008 14:36

Geht nicht, gibt's nicht Tongue

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-Readme-First-t1207.html

Gruss
Roland


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - Achim - 04.02.2008 14:44

' schrieb:Geht nicht, gibt's nicht Tongue
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-Readme-First-t1207.html

Jou...prinzipiell hast du wohl recht...aber seit LV 8.0 (?) wird das selbst von NI nicht mehr unterstüzt...


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - RoLe - 04.02.2008 14:52

Ach so, hab ich nicht gewusst. O

Bin halt einer von gestern. Rolleyes
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


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - eg - 04.02.2008 14:53

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?


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - IchSelbst - 04.02.2008 17:40

' 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.


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - thomas.sandrisser - 04.02.2008 21:57

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...


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - eg - 04.02.2008 22:40

' 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.


frontpanelelemente dynamisch (zur Laufzeit) erzeugen - thomas.sandrisser - 05.02.2008 08:16

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.