Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: can't get InputField to work inside a While command
Replies: 3   Last Post: May 18, 2013 2:38 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Dushan Mitrovich

Posts: 22
Registered: 5/7/11
Re: can't get InputField to work inside a While command
Posted: May 17, 2013 4:34 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

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





Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.