Re: DialogInput in ButtonFunction
- To: mathgroup at smc.vnet.net
- Subject: [mg125711] Re: DialogInput in ButtonFunction
- From: A Retey <awnl at gmx-topmail.de>
- Date: Thu, 29 Mar 2012 03:05:11 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jku7t5$8jn$1@smc.vnet.net>
Am 28.03.2012 07:34, schrieb Jakob Ebner: > I would like to impement something like the following into the > function of a button which needs the returned value for further > evaluation. > > DialogInput[{ > InputField[Dynamic[dyn], String], > FileNameSetter[Dynamic[dyn]], > Button["Ok", DialogReturn[dyn]] > }] > > Now I encounter two problems: > i) calling DialogInput or CreateDialog whithin a button causes my > Mathematica session to crash. > > ii) if this would work I also have the problem that the browse button > won`t work because the evaluation in the main notebook is halted. > > Any Suggestions? you need to set the Method of the Button to "Queued", that should save you from the crashes. AFAIK you also can't nest two modal dialogs, so when you insist on using FileNameSetter (which I tink calls such a dialog) then you can't use DialogInput. An alternative is to use CreateDialog and delay the Set (and all following code) to the DialogReturn, which will of course not be run when the user closes the window without clicking the OK button: Button["set filename", CreateDialog[{ InputField[Dynamic[dyn], String], FileNameSetter[Dynamic[dyn]], Button["Ok", DialogReturn[filename = dyn]] }], Method -> "Queued" ] of course you could just as well do: Button["set filename", filename = SystemDialogInput["FileOpen"], Method -> "Queued" ] hth, albert
- Follow-Ups:
- Re: DialogInput in ButtonFunction
- From: John Fultz <jfultz@wolfram.com>
- Re: DialogInput in ButtonFunction