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