Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.



Re: can't get InputField to work inside a While command
Posted:
May 17, 2013 4:34 AM


David Bailey wrote: > On 14/05/2013 08:14, Dushan Mitrovich wrote:> I need to be able to input > parameters for an apriori 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, popup 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



