Virtual custom property question

Ken Ray kray at sonsothunder.com
Sat Nov 5 17:28:24 EST 2005


On 11/5/05 9:36 AM, "David Bovill" <david at openpartnership.net> wrote:

> If I set the custom property of a control from somewhere else - lets
> say:
> 
>      set the display_Colour of group 1 to "red"
> 
> And this group has defined an appropriate setprop handler - say:
> 
>      setprop display_Colour someColour
>          set the bgColor of btn 1 of me to someColour
>      end display_Colour
> 
> Is there a way to find out which control is trying to set the custom
> property?

Yes, you look at the 'executionContexts'... the last line will be the group
itself (i.e. the last object to act on the script), but the *second to last*
line will be the object that was trying to set the custom property.

Each line of the executionContexts is in this format:

   <long ID of the object>,<handler>,<script line>

So if I have a button (button ID 1002) on a card, with a script:

  on mouseUp
    set the test of this card to 100
  end mouseUp

and my card script reads:

  setProp test pVal
    put the executionContexts
  end test

here's what I get:

  button id 1002 of card id 1002 of stack "Untitled 1",mouseUp,2
  card id 1002 of stack "Untitled 1",test,2

So if you take item 1 of line -2 of the executionContexts, you get the long
id to the object that made the original propery setting.


Ken Ray
Sons of Thunder Software
Web site: http://www.sonsothunder.com/
Email: kray at sonsothunder.com





More information about the Use-livecode mailing list