LabVIEWForum.de
Frontpanel Farben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Frontpanel Farben (/Thread-Frontpanel-Farben)



Frontpanel Farben - conne - 22.02.2010 11:41

Hallo,
Es passt vielleicht nicht ganz hier rein, aber ich muss trotzdem mal fragen. Ich habe ein relativ großes Frontpanel, das farblich angepasst werden muss. Dazu habe ich bisher im Blockdiagramm alle einzelnen Eigenschaftsknoten in einer Case-Struktur. Da das aber immer mehr wird frage ich mich nun, ob man das nicht irgendwie einfacher, und vor allem übersichtlicher machen kann.
Meine nächste Idee wäre nun die Referenzen der Anzeigen in einen Cluster zu packen, und an ein SubVI zu übergeben, in dem dann die Eigenschaftsknoten sind.
Wie würdet ihr das machen?


Frontpanel Farben - SeBa - 22.02.2010 12:24

Ich würde die FP-Elemente per Untertitel in Gruppen einteilen.
Elemente einer Gruppe bekommen z.B. die selbe Farbe ect... d.h. die Elemente müssen die entsprechende Eigenschaft auch besitzen.

In einer Schleife schaust du für jedes Element, welcher Gruppe es angehört und in einer Case-Struktur setzt du dann die Eigenschaften.

Sinnvollere Bezeichnungen als 1 und 2 für die Gruppen gibt es bestimmt, zur Demonstration sind diese jedoch zweckmäßig.

Nicht vergessen geöffnete Referenzen wieder zu schließen... ich habs weggelassen.

[attachment=24575]

Gruß SeBa


Frontpanel Farben - conne - 22.02.2010 13:31

So, darf ich nochmal?
Wie bekomme ich es denn hin, in dem Durchlauf der Schleife auch auf Eigenschaften zuzugreifen, die nicht für alle Elemente gleich sind?


Frontpanel Farben - Y-P - 22.02.2010 13:37

Mit "To more specific class".
Hier ein Bsp.: http://www.LabVIEWforum.de/index.php?s=&am...ost&p=50488

Gruß Markus


Frontpanel Farben - jg - 22.02.2010 14:28

Meine Empfehlung für den Einstieg:
Erstelle von den Elementen, die per PropertyNode setzen willst, eine Referenz (Rechtsklick->Create->Reference).
Die Referenzen identischer Elemente (also Numerics oder Booleans) fasst du dann in einem Array zusammen (Build Array).
Und dann geht es mit einer For-Schleife weiter, ähnlich wie schon oben beschrieben.

Mit den bisherigen Vorschlägen landest du aktuell in einer Sackgasse, denn dein VI ist doch sicher das hier:
http://www.LabVIEWforum.de/Probleme-beim-A...232-t15588.html
Und da liegen alle deine Controls auf einem Tab, du musst dir also die Referenzen so holen:
[attachment=24582]

Per Untertitel bzw. Caption würde ich NICHT aufsplitten. Die Caption kann zur Laufzeit per PropertyNode geändert werden, und ist somit kein eineindeutiger Bezeichner. Was ist, wenn du dein VI einmal mehrsprachig machst. Wenn eine Aufteilung, dann nach dem Label des Controls, und auf dem FP zeigt man den die Caption anstatt des Labels an!

Noch interessanter ist die Möglichkeit, die Art des Controls über seine Class ID festzustellen:
[attachment=24583]
Aber jetzt wird es abgehoben, also Schluß hier.

Gruß, Jens


Frontpanel Farben - conne - 22.02.2010 20:06

Ja Jens, da haste mich voll erwischt ;-)
Aber diese Vorgehensweise ist ja dann doch ziemlich aufwändig! Außerdem weiß ich nicht genau, wie ich das machen soll.
Ich müsste ja jetzt aus dem Array die betreffenden Referenzen rausfiltern, und wieder in ein neues Array schreiben, sehe ich das richtig?
Ist das nicht am Ende mehr Code als wenn ich einfach die einzelnen Eigenschaftsknoten stehen lasse?
Davon mal ab, wüsste ich gar nicht, wie ich das angehen sollte, auf eine Referenzeigenschaft abzufragen....


Frontpanel Farben - jg - 22.02.2010 22:10

Das mit den Referenzen ist nicht gerade das einfachste Thema in LabVIEW. Vor allem, wenn man noch an der Klasse der Referenz programmatisch rummacht und sie zu einer allgemeineren oder genaueren Klasse ändert.

Deshalb, wenn du etwas zusammenfassen willst, dann fang doch erst mal mit sowas hier an:
[attachment=24604]
Sowas ist schnell gemacht, und in meinen Augen übersichtlicher, als 20mal dieselbe PropertyNode nebeneinander.

Gruß, Jens


Frontpanel Farben - conne - 23.02.2010 10:53

Ich glaube, so werde ich das erstmal lösen, und die andere Variante vielleicht nochmal angehen, wenn ich mal Zeit habe.
Vielen Dank soweit!