David Burgun wrote:
I remember a while back I saw something about the preOpenStack and openStack handlers in Card 1 of the mainStack. Since then I have always placed these handlers in Card 1 and "passed" them (via pass command) to the Stack. However I can't seem to find that email anymore, could someone elaborate on how this works?

Most messages are generally sent to the highest object in the message path for which the message is relevant. For example, when you select a control that control gets the selectedObjectChanged message.

For messages that have no specific control, like openStack, preOpenStack, etc., those are sent to the card. They can be trapped there, or handled in the stack, depending on the scope of what you want to accomplish, or even handled in the mainStack or a library or a backScript.

For behaviors specific to my mainstack, I tend to put those in the mainStack's card script (or if there are multiple cards in my mainStack -- rare for me since I tend to use the mainStack as a repository of handlers -- I use a group in the mainStack). I do this because the mainStack's stack script is available to all substacks, and the alternative requires a decision point ("if the short name of the target is the short name of me"); to minimize complexity I try to keep decision points to a minimum (more on code complexity and its implications for maintenance coming in an article at revJournal soon).

Initialization of course needs to be done only once, and the mainStack's first card will be the first recipient of the startup, openStack, and preOpenStack messages. The startup message is only sent at runtime (the IDE gets it in development), so to get initialization in both development and runtime I use preOpenStack instead.

For readability I tend to structure my initialization like this:

on preOpenStack
  InitApp
end preOpenStack

on InitApp
  InitGlobals
  InitFonts
  InitColors
  InitWindows
  InitMenus
end InitApp

...where each of those "Init*" handlers are also included the card script.

As a matter of tidiness I usually pass all system messages, in case some other object is added down the road which needs them. With initialization, however, I prefer that everything be handled in one place so I don't pass that preOpenStack message.

I'm not sure if this is exactly what you were looking for; hope it helps.

--
 Richard Gaskin
 Managing Editor, revJournal
 _______________________________________________________
 Rev tips, tutorials and more: http://www.revJournal.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to