MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

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



  • Prev by Date: Re: List plot with random size for each point
  • Next by Date: Re: Listable parallel basic LibraryLink dll
  • Previous by thread: Re: PopupMenu Problems
  • Next by thread: Plotting stacked lineplots