INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Frontpanel Objekte zur Laufzeit Verändern



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

18.01.2011, 15:00 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2011 15:15 von Kiesch.)
Beitrag #1

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
Frontpanel Objekte zur Laufzeit Verändern
Hallo liebe LVF User,

Ich schreibe gerade für ein größeres Projekt eine Art primitives Zeichenprogramm (dient Maßfestlegungen und Positionsfestlegungen für Messpunkte). Dabei treibt mich die Frage um ob man auch Gestaltungselemente per Blockdiagram Kommando selektiv ausblenden / einblenden kann (nehme mal an schon die Ebenenfestlegung des Elements würde ausreichen).

Warum brauche ich das? Nun einfach gesagt habe ich natürlich verschiedene Formen die ich in mein Zeichenprogramm einfügen können will, vom Rechteck über Linien, Punkte, Kreise etc.
Außerdem sollen alle diese Elemente bearbeitbar sein - über Controls auf dem Frontpanel. Dazu braucht man also sowas wie einen Mittelpunkt / Eckpunkt / Punkt der angibt wo das Objekt ist. 2 Seitenlängen und einen Drehwinkel für Rechtecke. etc. pp.

Sprich je nachdem was man gerade für eine Form bearbeitet, ändern sich die Parameter die man ändern kann. Entsprechend will ich natürlich auch das Frontpanel anpassen. Dabei wollte ich bewusst keine Registerkarten benutzen, da ich hierdurch meiner Meinung nach unnötige Redundanz hereinbringe (auf jeder Registerkarte muss ich natürlich neue Controls anbringen, was zur Folge hat, dass sinngemäß ähnliche Objekte wie zum Beispiel der Mittelpunkt / Eckpunkt / Punkt insgesamt aktuell 7 mal neu definiert würden (macht allein dafür 14 Controls).

Deswegen habe ich mich dazu entschieden die Controls auf meinem Panel an einer Stelle anzubringen und dann selektiv je nach Form die Beschriftung passen zu ändern wo nötig (ein Radius und ne Seitenlänge sind sinngemäß zwar das gleiche, sollten jedoch natürlich jeweils entsprechend bezeichnet werden) - das sollte ja über Eigenschaftsknoten noch kein Problem sein.
Außerdem werden gerade nicht benötigte Controls ausgeblendet. Auch da sehe ich kein Problem.

ABER: Durch Gestaltungselemente soll ja in irgendeiner Form eine sinnvolle Ordnung von Controlls geschehen. Nun wäre es allerdings schön gerade NICHT benötigte Gestaltungselemente (weil gerade kein Winkel angegeben werden muss zum Beispiel) auch auszublenden. Ist das irgendwie realisierbar?


Gruß Kiesch

P.S: Danke schonmal im vorraus.

*edit* Muss mich korrigieren - auch Beschriftungen der Anzeigen zu ändern ist während der Laufzeit nicht bzw. nur im Bearbeitungsmodus möglich. Entsprechend müsste ich also auf dem Frontpanel auch separate Textkommentare einfügen bzw. ändern.

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2011, 15:28
Beitrag #2

Richard Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: Jun 2009

8.6,9.0,9.1,10.0,11.0
2008
DE_EN

80797
Deutschland
Frontpanel Objekte zur Laufzeit Verändern
Hallo Kiesch,

du kannst über Eigenschaftsknoten die Caption ändern. Diese lässt sich im gegensatz zum Label zur Laufzeit ändern.
Ebenfalls kannst du mit Eigenschaftsknoten die Sichbarkeit zur Laufzeit ändern.

Wenn du ein FP-Element in jeder Registerkarte haben möchtest, kannst du dieses einfach neben der Registerkarte einfügen und dann mit den Pfeiltasten darüberschieben. Es erscheint dann ein schwarzer Schatten unter dem Element, dieser wird zur Laufzeit aber nicht angezeigt.

Eigenschaftsknoten findest du über Rechtsklick -> Eigenschaftknoten erstellen.
Gruß Richard

Lv10
   

Murphy was an optimist
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2011, 15:35 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2011 15:39 von Kiesch.)
Beitrag #3

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
Frontpanel Objekte zur Laufzeit Verändern
Ah alles klar, sehe schon. Im Deutschen dann wohl der Untertitel. Danke schonmal dafür :-) Hatte auch schon mit Eigenschaftsknoten und der Beschriftung versucht, da meinte er das das nur im Bearbeitungsmodus geht - außerdem fiel mir dabei auf, dass ich dann mindestens mit Clustern die nach Name gebündelt sind Probleme kriegen würde ;-)

Muss ich dann also den Untertitel statt Beschriftung einblenden und ändern - gut ^^

Wenn jetzt noch jemand weis wie ich Gestaltungselemente selektiv Ein- / Ausblenden kann wär ich glücklich. Hab btw. auch schon gefunden, dass ich die wohl als GObjekt referenzieren kann. Aber wie ich danach mit dem Modifizieren weiterkomme verschließt sich mir atm.

*edit* Macht es eigentlich einen Unterschied (in der Verarbeitungsgeschwindigkeit o.ä.) ob ich einen allgemeinen Eigenschaftsknoten erstelle und über die Referenz steuere welches Objekt gemeint ist, oder über Eigenschaftsknoten erstellen einen Eigenschaftsknoten für ein bestimmtes Element erstelle, so dass keine Referenz mehr nötig ist? Könnte mir vorstellen, dass letzteres schneller ist, da nicht erst die Referenz ausgewertet werden muss - aber da lasse ich mich natürlich auch gerne eines besseren belehren (vor allem da ich bisher mit der ertsgenannten Methode arbeite).

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2011, 15:38 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2011 15:41 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Frontpanel Objekte zur Laufzeit Verändern
Es gibt eine PropertyNode "Decorations[]" des "Pane", die enthält eine Array of Refnum zu allen Deko-Objekten des Fensters.

Gruß, Jens
   

EDIT: Per Right-Click-Framework kannst du dir auch eine Refnum eines bestimmten Deko-Objekts erzeugen:
http://decibel.ni.com/content/docs/DOC-6496

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2011, 15:40
Beitrag #5

Richard Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: Jun 2009

8.6,9.0,9.1,10.0,11.0
2008
DE_EN

80797
Deutschland
Frontpanel Objekte zur Laufzeit Verändern
Referenzen auf Gestaltungselemente bekomst du über die Eigenschaft-Dekorationen) des Panels.
Dann hast du alle Dekorationen als Array. Da musst du dann die Richtigen heraussuchen.
Eine andere Möglichkeit diese zu bekommen ist mir nicht bekannt.

Was möchtest du denn daran ändern.

Gruß Richard

PS.: Jens war schneller IwillIwill

Murphy was an optimist
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2011, 15:43 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2011 15:45 von Kiesch.)
Beitrag #6

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
Frontpanel Objekte zur Laufzeit Verändern
Ah danke :-)

Da lag also die Lösung. Sieht vielversprechend aus, werde das dann mal austesten. Muss zwar noch rausfinden was welches Gestaltungselement ist, aber das sollte fix gehen.

Ich meld mich nochmal wenn ichs damit hingekriegt habe.

Gruß Kiesch

p.S: Ich komm mir grade blöd und blind vor, weil ich das offenbar übersehen habe obwohl ich schon auf der richtigen Spur war Huh

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.01.2011, 15:46
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Frontpanel Objekte zur Laufzeit Verändern
' schrieb:Da lag also die Lösung. Sieht vielversprechend aus, werde das dann mal austesten. Muss zwar noch rausfinden was welches Gestaltungselement ist, aber das sollte fix gehen.
Der Ärger startet, wenn du ein weiteres Deko-Objekt im FP hinzufügst. Das erhält dann nämlich den Index 0 im Array der Referenzen...

Übrigens, wenn du etwas gezeichnet dargestellt haben willst, wieso stellst du das nicht in einem LV-Picture-Control dar? Oder machst du das...

Gruß, 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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2011, 16:17
Beitrag #8

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
Frontpanel Objekte zur Laufzeit Verändern
Hab ich schon gemerkt dass der immer mit 0 das bezeichnet was ich als letztes platziere muss ich mir also die Positionen raussuchen in nen Array schreiben und ne Shiftkonstante einfügen so dass ich einfach die Positionsnummern aktualisieren kann wenn ich Elemente hinzufüge. Betrifft ja nun glücklicherweise auch nicht hunderte Elemente.

Aus kurzem Googeln zu Picture Control bin ich nicht wirklich schlau geworden. Was genau kann man denn damit machen? Soweit ich das aus dem Link den ich gefunden habe verstanden habe ist das eine sehr anpassbare Controll - aber was ich wirklich damit machen kann hab ich noch nicht verstanden.

Aktuell verwende ich simple Standardcontrolls die ich programmatisch ein und Ausblenden will, je nachdem ob sie gerade benötigt werden oder nicht. Dazu Gestaltungselemente die das ganze in eine gewisse Ordnung bringen (also zusammengehörigkeit zwischen Elementen darstellen). Die eigentliche Zeichnung ist mit dem 2D Bild Element realisiert (da werden dann die definierten Objekte gezeichnet). Denke auf die Art ist das ein guter Kompromiss zwischen Aufwand und Übersichtlichkeit im BD.

Ich hab mal den aktuellen Stand, samt nem geladenen Beispielbild, angehängt - so sieht das aktuell ungefähr aus (Registerkarte ist nur noch nicht gelöscht damit ich die Elemente alle jederzeit im Blick habBig Grin). Die "Buttons" über den Teilfenstern blenden eine Info ein (ganz Links zum Beispiel Mittelpunkt / Punkt o.ä.). Das ist alles wie gesagt noch in Arbeit und nicht endgültig platziert.
btw. die bunten Kreuze stellen jeweils Messpunkte dar (farbcodiert die Messmethode), die komplizierteren Formen dienen a) der Optik (der stilisierte Wafer zum Beispiel - es soll quasi die gemessene Probe abbildbar sein, damit man sich besser zurechtfindet) und b) als Container um Messpunkte zu gruppieren und gruppiert zu bearbeiten (ne bestimmte Anzahl von Messpunkten auf einer Linie zum Beispiel die im ganzen auf andere Messmethoden geändert werden können sollen etc.
Das ist aber wie gesagt natürlich hochgradig vom gerade selektierten Element abhängig, weswegen ich mein FP durch Ausblenden von Gestaltungselementen flexibilisieren will.

Gruß Kiesch

   

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2011, 23:43
Beitrag #9

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Frontpanel Objekte zur Laufzeit Verändern
Ich glaube, ich würde es mit LV-Klassen und Vererbung probieren; Für jedes Objekt würde ich auch die mehrfache Programmierung der Kontrollelemente in Kauf nehmen. Durch die Verwendung der Klassen und der individuellen Kontrollelemente, finde ich, gewinnt das Programm an Übersicht und kann leichter weiterentwichelt werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Baumstruktur - Objekte nur zwischen Elemente einfügen (keine neue Unterebene) enone 9 6.120 08.02.2019 08:05
Letzter Beitrag: 83Daniel
  Datentypen verändern handsch21 11 8.265 29.03.2018 15:45
Letzter Beitrag: GerdW
  Farbe eines String verändern Woody 6 9.249 12.03.2018 13:51
Letzter Beitrag: jg
  Laufzeit Problem? Timesplinter 9 6.963 03.11.2017 12:50
Letzter Beitrag: GerdW
  3 Arrays dynamisch verändern hubem14 7 5.548 13.09.2016 11:45
Letzter Beitrag: GerdW
  Ringtextwechsel zur Laufzeit andrepf 3 4.018 02.05.2016 14:16
Letzter Beitrag: Lucki

Gehe zu: