Bug???? Discuss please!
Bernard Devlin
revolution at knowledgeworks.plus.com
Wed Nov 15 15:42:42 EST 2006
Mark said:
>>
I would say this is a bug indeed. The message is sent, the handler
MessageY runs, both paths are followed as expected, but "the target"
and "me" are empty, while "the long id of me" is not empty.
<<
When I run this on 2.7.4 on OS X, me is not empty on entry into the
message handler on the closed card. Try putting
answer "me=" & me && "in MessageY"
in the handler for the field on card 2. I find that "me" is
evaluating to "MessageY" inside that handler - and nothing to do with
the long id of the field. But getting hold of the field via "the
long id of me" does work. So it is almost as though "me" is the
actual message received by the handler, whilst "the long id of me" is
a pointer to the field in which the handler lives.
Just to show that this is what seems to be happening, you can also
put "me" into a custom property - in that same handler, add this line
set the cp of the long id of me to me
And it is clear that "me" and "the long id of me" are very different.
Another oddity is that with card 1, if the field is empty when the
button is clicked, then "me" is not "MessageX", but is instead empty
when you try to answer using it as I am doing with the MessageY
handler above.
So here is the script I have in both handlers:
answer "long id =" && the long id of me & return & "me="&me && "in
MessageY"
set the cp of the long id of me to me
put MessageY into me --note, I'm using the message itself not a
string constant
Obviously, MessageY needs to be changed to MessageX in that handler..
Here's what I've found: when the button and the field are on the same
card "me" inside the handler is empty (as evidenced by what will be
in the cp of the field). However, if the message is sent to card 2
from card 1 then "me" will be "MessageY", and nothing will be put
into the field (probably because "me" is not a reference to the
field"). However, even though MessageX is empty in the handler of
the field or card 1, "MessageX" still gets put into the field.
Surely this is weirder than anyone expected?
Bernard
More information about the use-livecode
mailing list