Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

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

Search the Archive

Re: Help with dynamic functionality

  • To: mathgroup at smc.vnet.net
  • Subject: [mg128824] Re: Help with dynamic functionality
  • From: Fred Simons <f.h.simons at tue.nl>
  • Date: Thu, 29 Nov 2012 06:03:06 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <20121128081734.90AAB68D0@smc.vnet.net>

A further simplication shows wat is going on and how to achieve what you 
are looking for:

Grid[{{Checkbox[Dynamic[y]], Dynamic[y]},
   {Dynamic[x], Slider[Dynamic[x, (x = If[y, #, 0]) &]]}}]

Check the checkbox and move the slider. Then uncheck the checkbox. That 
changes the value of y, so the updating mechanism starts. For updating 
the the slider, the frontend  asks the kernel to evaluate the first 
argument, that is in this case  x only, which as not changed. If you 
want that unchecking the box has an effect on the slider, the first 
argument of the slider must depend on the variable y as well, e.g.

{Checkbox[Dynamic[y]], Dynamic[y],
  Slider[Dynamic[If[y, x, 0], (x = #) &]], Dynamic[x]}

Observe that the last Dynamic[x] shows that even when the the checkbox 
is unchecked, assignments to x are done when the slider is used. To 
prevent that, instead of (x=#)& you can use If[y, x=#]&.

Fred Simons
Eindhoven University of Technology


Op 28-11-2012 9:17, samid.hoda at gmail.com schreef:
> My actual problem is quite involved but I am including a simple example for
>   illustrative purposes. I am trying to reproduce "Enabled"-like functionality as follows:
>
> Clear[y, SliderModule];
> SetAttributes[SliderModule, HoldAll];
> SliderModule[enabled_] :=
>   DynamicModule[{x = 0}, {Slider[
>      Dynamic[x, (x = If[enabled, #, 0]) &]], Dynamic[x]}]
> {Checkbox[Dynamic[y]], Dynamic[y], SliderModule[y]}
>
> Ideally when the checkbox is checked then the user is able to move the slider; but when it is unchecked the slider resets to zero. The problem is when I uncheck the checkbox the slider doesn't reset to zero until I click on the slider itself. Is there a way to get the slider to immediately reset when I uncheck the checkbox? Please remember that this is a simplification of my actual problem so try to keep the SliderModule structure the same.
>
> Cheers,
> Sam
>
>
>
> -----
> Geen virus gevonden in dit bericht.
> Gecontroleerd door AVG - www.avg.com
> Versie: 2013.0.2793 / Virusdatabase: 2629/5920 - datum van uitgifte: 11/26/12
>
>
>




  • Prev by Date: DistributionChart and scaling
  • Next by Date: Re: Numerical expression
  • Previous by thread: Help with dynamic functionality
  • Next by thread: Re: Help with dynamic functionality