How does a command find out who called it?

Bob Sneidar bobs at twft.com
Wed Feb 1 20:30:33 EST 2012


That is what the dictionary entry for send says. If it is mistaken, it is a documentation bug. 

Bob


On Feb 1, 2012, at 5:02 PM, Richard Gaskin wrote:

> Bob Sneidar wrote:
> 
> > Dispatch does not have an "in time" argument. Only send does.
> > The other difference is that send temporarily changes the
> > defaultStack to the one containing the called handler. Any
> > references to "this card" or "this stack" will reference the
> > target stack, not the stack the handler was called from.
> > Dispatch does not do this. It can be a gotcha if you are not
> > aware of it.
> 
> Are you thinking of "call"?
> 
> I just ran this test:
> 
> 1. Make a new stack "aaa", and name the card "aaaaaaaaa"
> 
> 2. Make a new stack "bbb", and name the card "bbbbbbbbb"
> 
> 3. Add a button to "bbb" with this script:
>    on foo
>      put the name of this cd
>    end foo
> 
> 4. Click stack "aaa" to bring it to the front
> 
> 5. Run these in the Message Box
> 
>     send "foo" to btn 1 of stack "bbb"
>     RESULT:   card "bbbbbbbbb"
> 
>     dispatch "foo" to btn 1 of stack "bbb"
>     RESULT:   card "bbbbbbbbb"
> 
>     call "foo" of btn 1 of stack "bbb"
>     RESULT:   card "aaaaaaaaa"
> 
> 
> Interestingly, a similar test using different cards in the same stack yields a different result:
> 
> 1. Make a stack with two cards, one named "aaa" and the other "bbb"
> 
> 2. On card "bbb" add a button with the "foo" handler above
> 
> 3. Go to card 1 ("aaa") and run these in the Message Box:
> 
>    send "foo" to btn 1 of cd "bbb"
>    RESULT: card "aaa"
> 
>    dispatch "foo" to btn 1 of cd "bbb"
>    RESULT: card "aaa"
> 
>    call "foo" of btn 1 of cd "bbb"
>    RESULT: card "aaa"
> 
> 
> Should we expect "send" and "dispatch" to switch context with the card reference?
> 
> --
> 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 at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list