Strange behaviour of DialogInput and DialogCreate in 6.0.1
- To: mathgroup at smc.vnet.net
- Subject: [mg86845] Strange behaviour of DialogInput and DialogCreate in 6.0.1
- From: Januk <ggroup at sarj.ca>
- Date: Sun, 23 Mar 2008 01:02:20 -0500 (EST)
Hi,
I am trying to use DialogInput to allow users of my notebook to set
parameters in a nice graphical way. I'm running into a few problems
and was hoping someone might point me in the right direction.
The first problem is, if I set a variable using the result of
DialogInput, I can't use that variable in subsequent commands in that
cell. Below is a simple example (put contents in a single cell):
In[1]:=
test = 5
test = DialogInput[{"Some Result",
DefaultButton[DialogReturn[10]]}]
Pause[1]
Print["Hello"]
Pause[1]
test
Out[1]= 5
Out[1]= 10
Hello
Out[5]= test
I'm not sure I understand what's going on here. The final call of
test appears to have *no* value, not even the original value 5 that
was set. Now if we create a second cell,
In[2]:=
test
Out[2]= 10
So it appears the variable does get set at some point, just not at the
time I expect it to be set.
The second problem I'm running into is that if I use a Dynamic around
a global variable in a dialog, it will not update that variable when I
exit from the dialog. In fact, one of the examples from the Help file
doesn't work as advertised for me:
In[1]:= CreateDialog[{TextCell["Enter a name: "],
InputField[Dynamic[nm], String],
DefaultButton[DialogReturn[ret = nm]]}];
In[1]:= ret
Out[1]= ret
Note that the history index is not incremented after the CreateDialog
call.
The third problem I have would probably be solved if I can get
workarounds to the first two. That is, I want to make the dialog from
DialogInput modal. I don't see how to do that. I would use
CreateDialog or DialogNotebook, but as I mentioned, I don't appear to
have any working mechanism to return values.
Any suggestions of what I might be doing wrong or workarounds would be
much appreciated.
Thanks,
Januk