Weirdness Passing Messages

David Burgun dburgun at dsl.pipex.com
Thu Mar 23 06:04:20 EST 2006


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
>
> On 22 Mar 2006, at 19:14, David Burgun wrote:
>
>> Hi,
>>
>> function ListenForMessages theMessageID,theHanlderLocation
>>
>> Adds to an Array (stored in a GlobalProperty of StackUtil) as so:
>>
>> MessageArray[theMessageID] =  theHanlderLocation
>>
>> If theMessageID is already in the Array and the Location is not  
>> already in the data part of the array, then it is appended, so the  
>> array looks like this:
>>
>>    Key                      Data
>> "MessageX"          ObjectX of Card 2 of Stack "StackMain",ObjectY  
>> of Card 2 of Stack ""StackMain"
>>
>> and is called like so:
>>
>> ListenForMessages("MessageX",the long name of me)
>>
>>
>> function PutMessage theMessageID
>>
>> Looks up theMessageID in the Array built in ListenForMessages and  
>> calls (via a "send" statement) the handler with the name  
>> theMessageID at the location(s) specified in the data part of the  
>> array.
>>
>> As I said the Message handling functions seem to work fine in  
>> general, but not when PutMessage() is called from within a message  
>> handler OR when called from a different card that the one that  
>> called the initial message. Not sure which!
>>
>> Thanks a lot
>> All the Best
>> Dave
>>
>> On 22 Mar 2006, at 19:02, Mark Smith wrote:
>>
>>> What do these functions do?
>>>
>>> Mark
>>>
>>> On 22 Mar 2006, at 18:51, David Burgun wrote:
>>>
>>>> PutMessage()
>>>> ListenForMessages()
>>>
>>> _______________________________________________
>>> use-revolution mailing list
>>> use-revolution at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your  
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your  
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the Use-livecode mailing list