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