MathGroup Archive 2009

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

Search the Archive

Finding how to do things by trial and error

  • To: mathgroup at smc.vnet.net
  • Subject: [mg105497] Finding how to do things by trial and error
  • From: "Nasser M. Abbasi" <nma at 12000.org>
  • Date: Sat, 5 Dec 2009 05:33:41 -0500 (EST)
  • Reply-to: "Nasser M. Abbasi" <nma at 12000.org>

This is just some rambling on my part. Nothing serious:

Mathematica can sometimes require lots of trial and error to find how to do 
something.

This is a small example, which took me 15 minutes to find how to do.

I wanted to make a Manipulate with one control to the left and one to the 
right of the display and I wanted to label these controls using Style[].

Ofcourse I wanted to Labels to be on the same side as the controls.

I can use ControlPlacement to put one Control on the right, and one on the 
left. But what about the labels? ControlPlacement does not go with Style[].

Yet, if I give one general "global" ControlPlacement, then Styles will 
follows the ControlPlacement as expected, as follows:

-------------------------------------------
Manipulate[Text["test"],

Style["left", 10],
Control[{left, 1, 10}],

Style["right", 10],
Control[{right, 1, 10}],

ControlPlacement -> {Left, Left, Right, Right}
]
----------------------------

But I really like to have the ControlPlacement inside each Control[] so it 
is easier for me to see where each Control is located.
But If I write

--------------------------------------
Manipulate[Text["test"],

Style["left", 10],
Control[{left, 1, 10,ControlPlacement -> Left}],

Style["right", 10],
Control[{right, 1, 10,ControlPlacement -> Right}]
]
-------------------------------------
The above will not work, as now the Styles have default placement which is 
Left and so the Styles no longer in the correct locations.

So I needed something what will take ControlPlacement but also allow Style 
to be in it. After trying Row[] and Column[] and Grid[] and large coffee and 
none of worked as these do not take ControlPlacement, then I remembered that 
amazing one thing called Item[] which I discovered the other day, and it did 
the trick:

------------------------------
Manipulate[Text["test"],

Item[Style["left", 10], ControlPlacement -> Left],
Control[{left, 1, 10, ControlPlacement -> Left}],

Item[Style["right", 10],ControlPlacement -> Right],
Control[{right, 1, 10, ControlPlacement -> Right}]
]
------------------------------------------

My point in all of this, is that the first example I showed above, 
ControlPlacement worked on Styles[] as is when ControlPlacement was the 
general "global" one. And one did not need to use Item[] then.

It seems to me that sometimes finding little things like this is what makes 
learning Mathematica a continuous ongoing activity.

--Nasser 



  • Prev by Date: Special Input Characters' Reference Table
  • Next by Date: Re: Evaluating Global Variables Named Strings as
  • Previous by thread: Re: Re: Special Input Characters' Reference Table
  • Next by thread: Re: Finding how to do things by trial and error