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