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!
Ich einem Projekt soll eine Rezeptverwaltung umgesetzt werden. Innerhalb eines Rezeptes habe ich 20 Ebenen. In jeder Ebene sind die gleichen Parameter einzustellen. Die Ebenenansicht soll zunächst mit einer 20-seitigen Registerkarte umgesetzt werden.
Da die zu konfigurierenden Parameter in jeder Ebene gleich sind, möchte ich nicht alle Bedienelemente 20 mal erstellen (bei ca. 100 Parametern pro Ebene). Daher meine Frage: Gibt es eine Möglichkeit das ich die Bedienelemente für eine Ebene erstelle und diese dann auf die anderen Ebenen übertrage, ohne das jedes mal ein neues Bedienelemente erstellt werden muss? Beispielsweise soll in Ebene 1 ein Spannungswert A eingetragen werden können, in Ebene 2 ein Spannungswert B usw. Mir fehlt hier gerade ein bisschen der Ansatz. Danke für eure Mühe!
Ich würde die Daten die pro Ebene benötigt werden als Cluster in einem CTL definieren. Dann kannst du dir einmalig deine 100 Parameter auf der GUI platzieren, wenn das Cluster ordentlich ist, auch einfach nur das Cluster auf der GUI platzieren. Zusätzlich baust du dir ne ENUM die deine Ebenen representiert. Im Hintergrund hast du dann ein verstecktes Array von Clustern. Da kannste dann je nach ENUM-Auswahl den passenden Index auf die GUI laden oder eben Änderungen auf der GUI in dein Array wegschreiben.
War das als Ansatz verständlich genug?
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Ich würde die Daten in eine Datenbank schreiben. Dann hat man am nächsten Tag auch noch was davon.
Die Anzeige mit einer mehrspaltigen Tabelle. Da kann man in der Tabelle die Daten ändern.
vielen Dank für eure Antworten! Die Daten werden sowieso in einer Datenbank abgelegt. Es geht grundlegend darum, das ich im Blockdiagramm nicht mit 20 mal 100 Bedienelementen hantieren muss, sonder das ich eben dies vereinfache. Der Ansatz von TSC gefällt mir sehr gut. Werde ich gleich mal probieren. Das man das in einer CTL angelegte auch als Ansicht laden kann war mir noch nicht bekannt.
Ein CTL ist nichts anderes als ein "numerisches"-, "boolsches"-, "sonstwas"-Element. Nur eben mit einem benutzderdefinierten Datentypen im Hintergrund. Du kannst dem entsprechend natürlich ein Anzeige- oder Bedienelement deines Datentyps erstellen. Oder auch eine Konstante.
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Funktioniert soweit wunderbar! Hätte ich auch selber drauf kommen können...
In einer CTL lege ich jetzt mein Parameter in einem Cluster an. Das Cluster in dem CTL hole ich mir dann 20 mal in mein VI, jeweile eins auf eine Seite der Registerkarte. Damit habe ich 20 gleiche Cluster die ich mit der Seitenzahl indizieren kann und dies dann für Anzeige und Eingabe nutzen. Ich bau dies mal weiter aus und melde mich nochmal wenn ein weiteres Hindernis auftritt. Vielen Dank nochmal!
Ich würde die einzelnen CTLs dann trotzdem in einem Array bunkern,.. Das machts später leichter, zum Beispiel beim Wegschreiben in deine DB. Einfach eine For-Schleife drüber laufen lassen anstatt 20 mal die selbe DB-Schreiben-Funktion ins Blockdiagramm zu legen,..
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Mach das Cluster gleich als Typ-Def. oder Strikte Typ-Def. dann muss du die 20 Elemente per Hand ändern, wenn ein neues Element in den Cluster dazukommt.