Re: can't get InputField to work inside a While command
- To: mathgroup at smc.vnet.net
- Subject: [mg130792] Re: can't get InputField to work inside a While command
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Wed, 15 May 2013 02:54:52 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <kmso9j$h67$1@smc.vnet.net>
On 14/05/2013 08:14, Dushan Mitrovich wrote:> I need to be able to input
parameters for an a-priori indeterminate
> number of cases. The way I've been trying to do this is by using a
> While statement containing InputFields, one of which asks if there are
> to be more cases to deal with. If not, the previously True logical
> 'test' for While is reset to False.
>
> But apparently InputField is not even recognized as part of the 'body'
> inside a While. By itself InputField works as expected, but not in this
> reduced example:
>
> cntr = 0;
> While[cntr<3, cntr++; InputField[xx]]
>
> which only produces
>
> 1
> 2
> 3
>
> What am I missing? Or am I going about this the wrong way?
>
> - Dushan
> [ reverse the middle word of address to reply ]
>
You need to realise the InputField construction generates a box only
when it is output to a notebook (analogous to a Graphics object) - it
doesn't evaluate to anything other than itself. This code will create a
list of InputField objects, each attached to a different element of a
list, and the result will be returned to your notebook as a column of
boxes so you can change the various components and observe the result by
evaluating the variable data.
nin=7;
data=ConstantArray[0,nin];
Column[Table[With[{k=k},InputField[Dynamic[data[[k]]]]],{k,1,7}]]
This may, or may not be what you really want. You may want to place the
InputField objects in a separate, pop-up notebook with a close button to
close the window before the program continues to execute. This is
possible using CreateDialog.
David Bailey
http://www.dbaileyconsultancy.co.uk