Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

Re: Dynamic Module with Trigger

  • To: mathgroup at smc.vnet.net
  • Subject: [mg96694] Re: [mg96671] Dynamic Module with Trigger
  • From: John Fultz <jfultz at wolfram.com>
  • Date: Sat, 21 Feb 2009 19:38:06 -0500 (EST)
  • Reply-to: jfultz at wolfram.com

In your toy example, just add a second argument to the Dynamic[a] in the 
Slider...

DynamicModule[{a = 3, b}, b = a;
 Column[{Slider[Dynamic[a, (a = #; b = a) &], {0, 10, 1}], 
   Trigger[Dynamic[b, (b = #; b = b + a) &], {0, 25}], 
   Row[{Dynamic[{a, b}]}], 
   Graphics[{Dynamic[Line[{{0, 0}, {b, 0}}]]}, 
    PlotRange -> {{0, 40}, {-10, 10}}, Frame -> True, 
    ImageSize -> 72 6]}]]

I also changed the b=2 initialization to instead be b=a.

There are some things I would change about this example which would make the
code considerably simpler and easier to understand, but I've decided not to
since I don't know how inaccurately this example reflects real difficulties
you're dealing with in your real-world problem.  But, for example, I would have 
changed the first Dynamic to use (a=#, b=0)&, the Trigger Dynamic to use no
special function at all, and the Graphics Dynamic to show a line with the 
computed point a+b.

Sincerely,
 
John Fultz
jfultz at wolfram.com
User Interface Group
Wolfram Research, Inc.


On Fri, 20 Feb 2009 05:45:50 -0500 (EST), Hugh Goyder wrote:
> In the toy DynamicModule below pressing the trigger makes an existing
> line longer. The initial length of the line is controlled by a slider.
> The module works but I want to add the feature that when I move the
> slider the trigger resets itself and the now changed initial line is
> drawn. Is it possible to do this?
>
> Thanks
> Hugh Goyder
>
> DynamicModule[
> {a = 3, b},
> b = 2;
> Column[{
> Slider[Dynamic[a], {0, 10, 1}],
> Trigger[Dynamic[b, (b = #; b = b + a) &], {0, 25}],
> Row[{Dynamic[{a, b}]}],
> Graphics[{Dynamic[Line[{{0, 0}, {b, 0}}]]},
> PlotRange -> {{0, 40}, {-10, 10}}, Frame -> True,
> ImageSize -> 72 6]
> }]
> ]





  • Prev by Date: Re: Stylesheets
  • Next by Date: Re: Dynamic Module with Trigger
  • Previous by thread: Re: Dynamic Module with Trigger
  • Next by thread: Re: Dynamic Module with Trigger