Re: PopupMenu Problems
- To: mathgroup at smc.vnet.net
- Subject: [mg122507] Re: PopupMenu Problems
- From: Armand Tamzarian <mike.honeychurch at gmail.com>
- Date: Sun, 30 Oct 2011 04:23:52 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <j8gnvh$5ig$1@smc.vnet.net>
On Oct 29, 10:27 pm, Don <don... at comcast.net> wrote:
> Below is the code for a simple PopupMenu
>
> The purpose is to present the user with a PopupMenu that
> gives two options: "Linear" or "NonLinear".
>
> There are two problems with this code:
>
> (1) The word "Linear" (the default) is suppose to show up in
> the window next to the right of the word " Function:".
> Right now, it's just left as a blank. It was thought
> that setting the inital value of the variable "fnc1" to Linear
> would solve that problem.
>
> (2) After the user makes a choice by clicking on the down arrow and
> clicking on an option (Linear or NonLinear) the
> code should then "fall through" and Print "999" to show
> it is positioned to determine which option the user chose by
> executing the following Which function, but this never happens.
> The act of choosing an option by the user should result in executin=
g the Which function and subsequent functions.
>
> How can this code be modified to fix those two problems?
> Thank you in advance.
>
> Don
>
> Remove[master$FE];
> master$FE[] := Module[{},
> Interpretation[{fnc1 = Linear},
>
> backgrndClr = ColorData["Aquamarine", 0.15];
> Panel[Grid[
> {
> {Style["PopupMenu", 36, Bold], SpanFromLeft
> },
>
> {
> Style["Function:", Bold, 22],
> PopupMenu[Dynamic[fnc1], {"Linear",
> "NonLinear"}, AutoAction -> True
> ] ,
> SpanFromLeft
> }
> },
>
> ItemStyle -> Directive[FontSize -> 26, Bold],
> Spacings -> {2, 2},
> Dividers -> {None, {2 ->
> Directive[Black, AbsoluteThickness[Large]]}}
> ], ImageSize -> {300, 250}, Background -> backgrndClr],
>
> Print[" Begin Which Function - 999 "];
>
> fnc1String = ToString[fnc1];
>
> Which[
> fnc1String == "Linear",
> linear$FE[],
>
> fnc1String == "NonLinear",
> nonLinear$FE[]
>
> ];(* End Which *)
>
> Print["777"];
> ](* Interpretation *)
> (* Print["888"];*)
> ](* End Module master$FE *)
This seems to do want you require (assuming I have understood your
post):
Remove[master$FE];
master$FE[] :=
DynamicModule[{fnc1 = "Linear", backgrndClr = ColorData["Aquamarine",
0.15]},
Column[{
Panel[
Grid[{{Style["PopupMenu", 36, Bold],
SpanFromLeft}, {Style["Function:", Bold, 22],
PopupMenu[Dynamic[fnc1], {"Linear", "NonLinear"},
AutoAction -> True], SpanFromLeft}},
ItemStyle -> Directive[FontSize -> 26, Bold],
Spacings -> {2, 2},
Dividers -> {None, {2 ->
Directive[Black, AbsoluteThickness[Large]]}}],
ImageSize -> {300, 250}, Background -> backgrndClr],
Dynamic[
Print[" Begin Which Function - 999 "];
Which[fnc1 == "Linear", linear$FE[], fnc1 == "NonLinear",
nonLinear$FE[]];(*End Which*)Print["777"];
Spacer[0],
TrackedSymbols :> {fnc1}]
}]
]
master$FE[]
Mike