Re: Dynamic GUI problem II.
- To: mathgroup at smc.vnet.net
- Subject: [mg89445] Re: Dynamic GUI problem II.
- From: dh <dh at metrohm.ch>
- Date: Mon, 9 Jun 2008 06:22:54 -0400 (EDT)
- References: <g2fub0$2fs$1@smc.vnet.net>
Hi Zac,
to set up an vector of sliders with given initial positions is rather easy:
n=3;
a=Table[RandomReal[],{n}];
Slider[#,ImageSize->50]&/@a
However, it becames tricky, if you want assign variable to these
Sliders. We must first define the sliders and then give values to the
variables. First we need to gave a name the the variables. We may use
array: vars = Array[v, {n}]; To make them dynamic: vars = Dynamic /@
vars; To define the sliders: x=(Slider[#,ImageSize->50]&/@vars); And
know we can give values to the varibales:
MapThread[Set[Evaluate[#1[[1]]],#2]&,{vars,a}]; The Evaluate is
necessary, otherwise we would change a part of Dynamic[..]. Finally we
may display the sliders. All together:
n=3;
Remove[vars,a,x,v];
a=Table[RandomReal[],{n}];
vars=Array[v,{n}]; vars=Dynamic/@vars;
x=(Slider[#,ImageSize->50]&/@vars);
MapThread[Set[Evaluate[#1[[1]]],#2]&,{vars,a}];
x
Dynamic/@vars
zac wrote:
> Dear Group,
>
> another GUI related question.
> How to save a list of dynamic values into one variable after allowing
> the user to input them through e.g. separate sliders, when the actual
> length of the list (and number of sliders) is not determined
> preceedingly (here it is 3, but say it can change)?
>
> n = 3;
> a = Table[RandomReal[], {n}];
> x = Table[Slider[a[[i]], ImageSize -> 50], {i, n}]
> Dynamic[Setting[x]]
>
> The last line of code clearly won't work, since all sliders were
> called without any dynamic content.
> Any suggestions?
>
> Istvan Zachar
>
--
Daniel Huber
Metrohm Ltd.
Oberdorfstr. 68
CH-9100 Herisau
Tel. +41 71 353 8585, Fax +41 71 353 8907
E-Mail:<mailto:dh at metrohm.com>
Internet:<http://www.metrohm.com>