www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathematica" - Listen dynamisch verändern
Listen dynamisch verändern < Mathematica < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Listen dynamisch verändern: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 14:20 Mo 02.06.2014
Autor: Epsilon1973

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

        
Bezug
Listen dynamisch verändern: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:20 Di 10.06.2014
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]