Listen dynamisch verändern < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Es soll eine Liste mit Buttons erstellt werden. Wird auf einen Button geklickt, sollen gewisse Eigenschaften des Buttons wie zum Beispiel die Farbe verändert werden. |
Ich möchte die gewünschte Button-Liste zum Beipspiel mit einem Table-Befehl generieren. Meine einzige Idee ist, die Farben der Buttons auch in einer Liste "buttonColor"zu definieren. Das Problem ist, dass die Zuweisung im Funktionsteil des Buttons:
buttonColor[ [i] ]=Red
nicht funktioniert. Ich verstehe nicht ganz, wieso das so ist. Wahrscheinlich hängt dass irgendwie damit zusammen, dass der Index i beim erzeugen der Buttonliste nicht eine festen Wert annimmt.
Mein Versuch:
DynamicModule[
{buttonColor, buttonEnabled},
buttonColor = Table[LightGray, {2}];
buttonEnabled = Table[True, {2}];
Deploy[Dynamic[
Grid[{
Join[
Table[
Button[
StringJoin["Button", ToString[i]],
buttonColor[ [i] ] = Red; buttonEnabled[ [i] ] = False,
Background -> buttonColor[ [i] ], Enabled -> buttonEnabled[ [i] ]],
{i, 1, 2}],
{Button[Style["Reset", White, Bold],
buttonColor = Table[LightGray, {2}];
buttonEnabled = Table[True, {2}],
Background -> Black
]}]
}]
]]]
Wenn ich jeden Button einzeln ohne Umweg über Listen erstelle, funktioniert es problemlos:
DynamicModule[
{buttonColor1, buttonColor2, buttonEnabled1, buttonEnabled2},
buttonColor1 = LightGray;
buttonColor2 = LightGray;
buttonEnabled1 = True;
buttonEnabled2 = True;
Deploy[Dynamic[
Grid[{
{Button[
StringJoin["Button", ToString[1]],
buttonColor1 = Red; buttonEnabled1 = False,
Background -> buttonColor1, Enabled -> buttonEnabled1],
Button[
StringJoin["Button", ToString[2]],
buttonColor2 = Red; buttonEnabled2 = False,
Background -> buttonColor2, Enabled -> buttonEnabled2],
Button[Style["Reset", White, Bold],
buttonColor1 = LightGray;
buttonColor2 = LightGray;
buttonEnabled1 = True;
buttonEnabled2 = True,
Background -> Black
]
}
}]
]]]
Unter Buttom Probleme habe ich meine Versuche als CDF hochgeladen. Oben der missratene Versuch, unten die Funktionsweise, wie sie sein sollte (jedoch unbrauchbar für das effektive Progrämmchen, da die Buttonliste von der Länge her varierbar sein muss und auch sehr lang sein kann).
Ich hoffen sehr, dass sich eine Lösung findet.
Vielen Dank schon im voraus und Grüsse aus Zürich.
Epsillon
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:20 Di 10.06.2014 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|