MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Tracking a dynamic variable


Hello

I have a larger program in which I want to look if a value 
of a dynamic variable has changed.

A short version of this program looks like this:

Interpretation[{x = 1, y = 1, flag1 = False, flag2 = 
False},
  
  TabView[{
    "task 1" ->
     Dynamic[
      Block[{},

       (* store old value of x *)
       y = x;

       (* test if x changed *)
       If[x != y, flag1 = True];

       (* display input and some outout *)
       Panel[
        Grid[
         {{
           InputField[Dynamic[x]],
           Dynamic[x],
           Dynamic[y],
           flag1
           }}
         ]
        ]
       ]
      ],
    "task 2" ->
     Dynamic[
      Block[{},
       If[x == y,
        flag2 = True,
        flag2 = False
        ];
       Panel[
        Grid[
         {{x, y, flag1, flag2}}
         ]
        ]
       ]
      ]
    }
   ],

  
  Print["end"]
  
  ]

I want to track the variable x and if it has changed in 
"task 1"  an appropriate action should be accomplished in 
"task 2".

The program above works only if for the input in "task 1" 
the Return key is not pressed in the InputField. If I 
press Return in the InputField the whole "task 1" is 
executed and then y will be equal to x in any case.

Now how can I track the value of x so that I can decide in 
"task 2" that x has changed?

Matthias





  • Prev by Date: Re: DynamicModule question
  • Next by Date: Re: Re: Stop cell tags propagating to generated cells
  • Previous by thread: Re: Re: 2 domain PDE, NDSolve
  • Next by thread: Re: Tracking a dynamic variable