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 habe eine Funktion mit 16 boolschen Schaltelementen, nun möchte ich verschiedene Schaltelemente gegeneinander verriegeln. Also wenn z.B. Bool 1 geschaltet ist, sollen Bool 2 und Bool 3 nicht geschaltet werden können/dürfen. Ich weiß das geht zum einen mit den Radiobuttons. Hier gibt es aber das Problem, dass ich meine boolschen Schaltstellungen vergleichen will mit einem Array aus boolschen Konstanten. Meines Wissen kann ich dies mit den Radiobuttons nicht mehr vergleichen. Also wie verriegele ich Schalter gegeneinander?
Gruß
Es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen, sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den größten Genuß gewährt.
Carl Friedrich Gauß, (1777 - 1855) deutscher Mathematiker, Astronom und Physiker
21.11.2011, 09:43 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2011 09:45 von GerdW.)
wenn du nicht auf Radiobuttons zurückgreifen willst, würde ich eine Eventstruktur und den Einsatz von PropertyNodes ("Disabled") empfehlen...
Warum solltest du bei Radiobuttons nicht vergleichen können? Die geben dir doch aus, welcher Knopf gerade aktiviert ist? (Du musst evtl. nur deine Vergleichsgröße umstellen...)
Ließe sich auch über XControls realisieren. Insbesondere das Sperrverhalten der Knöpfe untereinander wäre in der Ereignisstruktur des XControls versteckt und belastet nicht den Hauptprogrammcode. Den Datentyp des XControls kann man frei gestalten. Für XControls braucht man allerdings etwas LabVIEW-Erfahrung.
(21.11.2011 09:40 )Homer-Jay schrieb: Hier gibt es aber das Problem, dass ich meine boolschen Schaltstellungen vergleichen will mit einem Array aus boolschen Konstanten. Meines Wissen kann ich dies mit den Radiobuttons nicht mehr vergleichen.
Da würde ich sagen, daß Dich Dein Wissen im Stich läßt. Der geringe Aufwand an Konvertierung, um den Wert eines Radio-Buttons mit den Tastenstellungen ein Arras an boolschen Elementen zu vergleichen, steht jedenfalls in keinem Verhältnis zum programmtechnischen Aufwand, um einem Boolschen Array ein narrensicheres Radio-Button-Verhalten anzuerziehen. (Wer sonst nichts weiter zu tun hat, darf hier gern Vorschläge für beide Varianten posten)
21.11.2011, 10:03 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2011 10:04 von Homer-Jay.)
Ok, wie schon in meiner Signatur steht, es ist nicht das Wissen, sondern das Lernen...
Wie konvertiere ich denn ein Optionsfeld, damit es mit einem boolschen Array vergleichbar ist?
Gruß
Es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen, sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den größten Genuß gewährt.
Carl Friedrich Gauß, (1777 - 1855) deutscher Mathematiker, Astronom und Physiker
Der Radiobutton erscheint als Enum im Blockdiagramm. Also kann man höchstens eine Option wählen. Man braucht hierbei nichts zu deaktivieren (disable). Ich glaube nicht, dass das die gewünschte Funktionalität ist. Wenn ich Deine Frage richtig verstanden habe, solltest Du mit einem Cluster von Boolean arbeiten. Das lässt sich direkt in ein Array umwandeln. Um das deaktivieren musst Du Dich mit einer Ereignisstruktur kümmern.
21.11.2011, 10:35 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2011 10:35 von Lucki.)
(21.11.2011 10:03 )Homer-Jay schrieb: Wie konvertiere ich denn ein Optionsfeld, damit es mit einem boolschen Array vergleichbar ist?
Das kommt darauf an, ob man im Optionsfeld "Deaktivieren aller Optionen" angeklickt hat oder nicht. Wenn das nicht der Fall ist (Also es ist immer 1 Knopf gedrückt), dann einfach aus dem Wert x des Optionsfeldes 2^x berechnen.
Wenn z.B. auf Gleichheit getestet werden soll:
Funktioniert wunderbar!!! Danke, aber damit ich nicht ganz dumm sterbe was haben wir denn jetzt gemacht? Das Optionsfeld gibt ne Zahl aus, diese müssen wir konvertieren, damit sie verglichen werden kann. Aber die mathematische Operation die da offensichtlich dahinter steckt hab ich noch ned ganz durchschaut. Oder bin ich wieder völlig auf dem Holzweg?
Gruß
Es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen, sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den größten Genuß gewährt.
Carl Friedrich Gauß, (1777 - 1855) deutscher Mathematiker, Astronom und Physiker
21.11.2011, 14:45 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2011 14:47 von unicorn.)
(21.11.2011 09:40 )Homer-Jay schrieb: ..ich habe eine Funktion mit 16 boolschen Schaltelementen, nun möchte ich verschiedene Schaltelemente gegeneinander verriegeln. Also wenn z.B. Bool 1 geschaltet ist, sollen Bool 2 und Bool 3 nicht geschaltet werden können/dürfen.
..
Das ist jetzt aber noch nicht gelöst, oder ist das nicht mehr wichtig?
21.11.2011, 16:03 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2011 16:08 von Lucki.)
(21.11.2011 10:46 )Homer-Jay schrieb: Aber die mathematische Operation die da offensichtlich dahinter steckt hab ich noch ned ganz durchschaut.
Tue das mit Unlust, denn da muß man ja vom Urschleim an mit dem Aufbau des Zahlensystems beginnen.
Beim Dezimalzahlen ist z.B 123 = 3*10^0 + 2*10^1 + 1*10^2 , d.h die letzte Ziffer hat die Wertigkeit 1, die vorletzte die Wertigkeit 10 usw.
Ensprechend haben die Zifferen im binären System die Wertigkeiten 1,2,4,8..
Bei der Umwandlung eines Boolschen Arrays in eine Zahl erhalten die Elemente ihre entsprechenden Wertigkeiten und werden addiert.
Bei einem Radio-Button ist immer nur 1 Knopf true. Je nachdem, welche Wertigkeit dieser Kopf hat, kommt also, wenn man sich den Radio Button als Array vorstellt, als Zahl immer nur 1,2,4,8.. heraus.
Zitat Unicorn:
Zitat:Das ist jetzt aber noch nicht gelöst, oder ist das nicht mehr wichtig?
Gelöst zwar nicht, dafür aber das hinter der Frage liegende Problem. Einen Radio-Button nachzubauen wäre jetzt vermutlich nur noch interessant, wenn sich damit das Vergleichs-Problem ähnlich einfach lösen ließe. Versuchs doch mal...