Using package functions in Manipulate/DynamicModule
- To: mathgroup at smc.vnet.net
- Subject: [mg109108] Using package functions in Manipulate/DynamicModule
- From: Rui <rui.rojo at gmail.com>
- Date: Mon, 12 Apr 2010 23:03:24 -0400 (EDT)
Hey. My objective is to deploy in a Mathematica Player file a document which has some interactive stuff, without any code visible. Ideally, it would be all in a single file but I can live with sending a .m package file too. So far so good. Inside a DynamicModule I used some functions from a .m file I had created some time ago. As expected, when I close the file and reopen it, the dynamic gives errors everywhere. First I thought there might be something magical similar to SaveDefinitions that would automatically store in the cell everything it needs to work fine. But I coulnd't find it. I tried wrapping it up in a Manipulate with SaveDefinitons->True but doesn't work either. So, I decided to try for the cell to just load the package whenever it needs to be displayed for the first time. "Initialization:>Needs["AddOns'"]" seemed to be perfect. However, it doesn't work as expected. For example: (SS and IListPlot are from AddOns.m) Manipulate[ IListPlot[SS[p, 100] @@ Range[100]], {p, 1, 100, 1}, Initialization -> Needs["AddOns`"], SaveDefinitions -> True] doesn't work and tells me there are double definitions in Global` and AddOns` of IListPlot and SS (right after starting the kernel) The few times I've tried to use "Initialization" it gave me a headache. I would have thought it just executes that whenever the dynamicmodule/manipulate is displayed for the first time, but evidence proves it isn't that simple, and I don't get it. Perhaps I should put all of my package's variables in the DynamicModule and copy the whole package inside? When something that strikes me as useful and common is getting convoluted and messy, it's a sign I'm overseing something and needing your help. Thanks a lot! ;D