NEWS
Gegenseitige Verriegelung
-
Hallo
Ich habe drei Buttons A, B und C. Diese möchte ich mit einen Blockly gegenseitig verriegeln. Also wenn A= true, dann B und C = false usw. Wie kann man das am besten realisieren?
Viele Grüße
Semmy -
@semmy sagte: Wie kann man das am besten realisieren?
Für solch eine Aufgabenstellung verwendet man eine Werteliste. Dafür gibt es in Vis dann das Widget "Radiobuttons ValueList".
-
@semmy ,
da braucht man noch mehr Info. Muss A erst wieder auf false bevor du B oder C schalten kannst, oder soll A auf false gehen wenn du B oder C schaltest ? -
@wal sagte in Gegenseitige Verriegelung:
@semmy ,
da braucht man noch mehr Info. Muss A erst wieder auf false bevor du B oder C schalten kannst, oder soll A auf false gehen wenn du B oder C schaltest ?A soll wieder auf false, sobald ich B oder C schalte.
-
@semmy
Wenn keine Werteliste verwendet werden soll: -
@semmy ,
oder so.<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id="4P@HOY5Ohv4Xk6g%Yjf5" x="63" y="-662"> <field name="OID">javascript.0.variables.A</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="+nDqdeCALM7(i%,cY5ce"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.B</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="c3d8:-V!*h:m`kTVE(6~"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="L^_0EQ8dr$.fy$lYr((i"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.C</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="8A=G.CgX$8e*^x-)pl]I"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <next> <block type="on" id="zQ]}}xqLO7hgvbWBBOJl"> <field name="OID">javascript.0.variables.B</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="qF]521DDcmXUDtD{F+/]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.A</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="fdu+lIj%0A#T[-l8IE3z"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="D8^%C%AZUHzHE?$Se}qT"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.C</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="c@D[^7Lk8pxTkZUP)D+w"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <next> <block type="on" id="7/ROAWyb_]nV3|Ml_%Fs"> <field name="OID">javascript.0.variables.C</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="z%]JKt@LVx6I,Xkg?X`i"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.B</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="dx8i6TM@+J;x$(=AC%HQ"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="^AK^]z|G`,@=``AYCtI|"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.A</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=".eCs-6.-VZ9prcKZuV60"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </xml>
edit: habe für den Test 3 Variable in javascript.0.variables erzeugt A,B,C
-
@paul53 Funktioniert, Wenn A=true, sollte er nur noch mit "B oder C= true" auf false gehen. Im Moment geht er auch auf false, wenn ich ihn nochmal betätige.
-
@wal Funktioniert auch, aber wenn A=true, sollte er nur noch mit "B oder C= true" auf false gehen. Im Moment geht er auch auf false, wenn ich ihn nochmal betätige.
-
@semmy sagte: wenn ich ihn nochmal betätige.
Dann reagiert der Trigger "ist größer als letztes" nicht.
Oder geht der betätigte Taster selbständig auf false? -
@paul53 sagte in Gegenseitige Verriegelung:
@semmy sagte: wenn ich ihn nochmal betätige.
Dann reagiert der Trigger "ist größer als letztes" nicht.
Oder geht der betätigte Taster selbständig auf false?Nein, der geht nicht selbstständig auf false. Er sollte halt nicht auf false gehen, wenn ich ihn betätige und er auf true ist.
Wenn A=true, sollte er nur noch mit "B oder C= true" auf false gehen. Im Moment geht er auch auf false, wenn ich Button A nochmal betätige.