MathGroup Archive 2013

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

Search the Archive

Re: can't get InputField to work inside a While command

  • To: mathgroup at smc.vnet.net
  • Subject: [mg130811] Re: can't get InputField to work inside a While command
  • From: Dushan Mitrovich <dushanm at nnips.net>
  • Date: Fri, 17 May 2013 04:36:26 -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> <kmvbdl$nok$1@smc.vnet.net>

David Bailey wrote:
> 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
>
 >
Okay, thanks for the clarification.  It seems I can't use InputField the 
way I intended in a loop testing for a condition.  Your example assumes 
I know beforehand the number of times I need to invoke it, which 
generally won't be the case.

But apparently I can use Input within such a loop, and I'll explore that 
possibility further.

- Dushan




  • Prev by Date: Re: Work on Basic Mathematica Stephen!
  • Next by Date: 2x2 determinant bug in math 9.0.0.0
  • Previous by thread: Re: can't get InputField to work inside a While command
  • Next by thread: Re: can't get InputField to work inside a While command