Pete wrote: > On Sun, Dec 4, 2011 at 12:10 PM, Richard Gaskin wrote: >> >> Here's what the docs say with regard to recursion for setProp: >> >> Caution! If a setProp handler in one object's script sets the >> custom property for a different object, and the first object >> is in the second object's message path, a runaway recursion >> will result. For example, if the following handler is in a >> card script, and you set the "myCustomProperty" of a button >> on the card, runaway recursion will result: >> >> setProp myCustomProperty newValue >> set the myCustomProperty of the target to newValue + 1 >> -- Because the target is the button, and this handler is in >> -- the card, the above statement sends another setProp trigger >> -- to the button. >> end myCustomProperty >> >> To avoid this problem, set the lockMessages property to true >> before setting the custom property. ... > > > Hi Richard, > You're right the reference manual does say that. And on the very next > page, it says: > > "If you use the set command within a setprop handler to set the custom > property for the current object, no setProp trigger is sent to the > target object. (This is to avoid runaway recursion, where the setprop > handler triggers itself)". > > Your example and mine appear to contradict each other so I guess > there must be two different circumstances described by these two > references.
In my pre-coffee state it seems we're looking at the same thing, with one small but important distinction:
Recursion will not occur if the setProp handler for a given property label sets the value of a property using that label, BUT if it calls any other handler which sets that property then recursion will occur.
Did I miss something? -- Richard Gaskin Fourth World LiveCode training and consulting: http://www.fourthworld.com Webzine for LiveCode developers: http://www.LiveCodeJournal.com LiveCode Journal blog: http://LiveCodejournal.com/blog.irv _______________________________________________ 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