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