Hi all. I came up with a workaround for local constants in behaviors. It doesn't actually use constants. Instead I have an array of "constants" I set for a particular object. For example, in my customer stack properties, I have an array with key value pairs like so:
cParentTable1: cParentKey3: cDGName: dgCustomers cParentKey1: cTableName: Customers cParentTable3: cAltkey1: contactid cPriKey: custid cUniqueValueList: customername cFocusField: fldCustomerName cParentTable2: cAltDGName1: dgcontacts I don't really need the empty values, but this is a standard array in all my stacks, and the empty values aren't used. Now in my behavior for a New button I have the following. Note that the local variables have the same names as the array keys: local cTableName, cDGName, cFocusField -- note this is only a subset of the array keys on getStackConstants put getParentStack(the long id of me) into tThisStack -- just gets the long name of the parent stack -- retrieve stack constants from stack property put the stackConstants of tThisStack into aStackConstants -- retrieves the constants array for the parent stack put the keys of aStackConstants into tConstantList repeat for each line tConstant in tConstantList do "put " & quote & aStackConstants [tConstant] & quote & " into " & tConstant -- variable of the same name as the array key end repeat end getStackConstants Then I have a mouseUp handler in the behavior script that is the actual behavior for a New Customer button, but of course it could be any handler. Calling getStackConstants first, I preload the local variables with the values from the array. Of course they do not have to be script locals, but then you would have to call getStackConstants in every handler in the behavior. This way you only need to call it in the initial handler: on mouseUp pMouseBtnNo -- load stack constants getStackConstants -- create behavior local variables -- whatever code here. I snipped mine for brevity end mouseUp The upshot is, now in each stack that has a btnNew button with this behavior set and an array with the "constants" set to what I need, everything just works. Of course, the array could be a property of any object, and the command could be getConstants pLongObjectID or something. In fact I will probably do that. The trick is that getStackConstants needs to live in the behavior script. Hope this helps others to consider using behaviors when they need some kind of constants or set of fixed variables. Bob S _______________________________________________ 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