Weirdness Passing Messages
David Burgun
dburgun at dsl.pipex.com
Thu Mar 23 06:21:58 EST 2006
Update:
I just changed the code so that instead of:
put "MessageY" into me
It now reads:
put "MessageY" into field "FieldY" of group "Y" of card 2 of stack "/
Documents/Test/StackMain.rev"
And now the "put" statement works as expected!!!!!!!
Can anyone shed some light on this?
I really need to refer to the object without hardcoding it's name
into the Script, I thought that was what "me" was for?????
Is this a bug? If so is there a workaround??
Thanks a lot
All the Best
Dave
Hi,
As far as I know (I have asked this question on this list before) and
according to the documentation, "me" always refers to the object that
the script is running in.
Are you suggesting I change "me" to "long name of x" just to see if
it makes a difference or in general?
If you mean in general, then this will mean that a lot of the
reusability of code that is so good in RunRev will vanish and make
developing Apps MUCH slower. In fact if I have to do this then I
would seriously consider not using RunRev anymore.
I have lots of fields that all refer to "me", to change them now
would take forever and result in a lot of hand-tweaking every time I
want to re-use a Group.
Here is the problem again, described in simpler terms:
1 StackMain:Card1:ObjectA:mouseUp - Calls Function
StackUtil:PutMessage("MessageX")
2 StackUtil:PutMessage - Calls Handler
StackMain:Card2:ObjectX:MessageX (via send)
3 StackMain:Card2:ObjectX:MessageX - Put "MessageX" into me and then
Calls Function StackUtil:PutMessage("MessageY")
4 StackUtil:PutMessage - Calls Handler
StackMain:Card2:ObjectY:MessageY (via send)
5 StackMain:Card2:ObjectY:MessageY - Put "MessageY" into me
In this case the "put" statement at step 5 does NOT put "MessageY"
into StackMain:Card2:ObjectY (the object is unchanged), but the
"put" at step 3 works ok.
However, this does work:
1 StackMain:Card2:ObjectX:mouseUp - Calls Function
StackUtil:PutMessage("MessageY")
2 StackUtil:PutMessage - Calls Handler
StackMain:Card2:ObjectY:MessageY (via send)
3 StackMain:Card2:ObjectY:MessageY - Put "MessageY" into me
What could be going wrong here? Is it that I am mixing functions and
handlers?
How can I test to see if the context is the problem?
Any ideas on how to get this working would be greatly appreciated.
Thanks a lot
All the Best
Dave
On 23 Mar 2006, at 02:22, Mark Smith wrote:
> Is it a context problem?
>
> It might be worth trying to replace
> put "MessageY" into me
> with
> put "MessageY" into <long name of control>
>
> I've always thought that 'me' always referred to the control whose
> script it appears in, but that's an assumption, not necessarily a
> fact...
>
> Mark
More information about the use-livecode
mailing list