On Jul 15, 2011, at 3:29 PM, Pete wrote: > I'm having a problem with behaviors not being resolved in my application > stack. > > I have two stack files, lets call them library.livecode and > application.livecode. The script of the main stack of library.livecode has > handlers that I use in application.livecode by issuing a "start using" > command. > > library.livecode also contains a substack named Behaviors whose card has a > bunch of buttons whose scripts I want to use as behaviors in > application.livecode butthe "start using" command doesn't seem to make the > behaviors available to the controls in application.livecode, by which I mean > they act like they don't have a behavior defined. > > I can fix this by setting the stackFiles of the main stack of > application.livecode to "Behaviors,<path to library.livecode>". I have to > reference the Behaviors substack, not the main stack of library.livecode for > this to work. > > I guess I'm wondering if this is the appropriate way to deal with this > situation or if there's a cleaner way to do it.
You're right - putting a stack into use doesn't load it into memory (e.g. it's not in the mainstacks), so the behaviors go unresolved. Here's two ways to do it (other than the one you described): 1) Open the library invisibly (I do this by trapping "on libraryStack": on libraryStack if the target is me then open inv stack (the short name of me) end if end libraryStack 2) The "datagrid" trick - if you use "there is a stack" then it loads a stack into memory but doesn't actually open it: get (there is a stack <pathToStack>) Ken Ray Sons of Thunder Software, Inc. Email: k...@sonsothunder.com Web Site: http://www.sonsothunder.com/ _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode