Send and Dispatch without parameters

dunbarx at aol.com dunbarx at aol.com
Fri Jan 27 16:46:09 EST 2012


Bob.


Nope, it was me. Name conflict; you don't want to know.


The method works fine. LC messages like "mouseUp" or custom ones like "yourMessage" all pass correctly. Parameters are not pertinent. Check your stack. I had another object with the same name as the intended target. My message was passed all right, but to the wrong destination.


Craig Newman


-----Original Message-----
From: Bob Sneidar <bobs at twft.com>
To: How to use LiveCode <use-livecode at lists.runrev.com>
Sent: Fri, Jan 27, 2012 3:57 pm
Subject: Send and Dispatch without parameters


Hi all. 

I just noticed that if you send or dispatch to an object and you have specified 
parameters in the objects handler, but you don't provide the parameters when you 
send or dispatch, the call will silently fail. This seems only to occur for 
built in handlers, like mouseUp for example. 

If I have a button called "myButton" with a mouseUp handler:

on mouseUp pButtonNum
    put "This is a test"
end mouseUp

if I:
send "mouseUp" to button "myButton"

or:
dispatch "mouseUp" to button "myButton" 

The button will never get the message, and no error is generated. This caught me 
quiet off guard, as you can for a custom handler just call it, and even if you 
don't provide all the parameters, the handler gets called anyway. 

However, if I have a custom handler:

on testMe theMessage
    put "This is a successful test."
end testMe

And then I send or dispatch without the parameter, the handler gets called fine! 
Is this normal or expected behavior? I cannot think that this kind of ambiguity 
is what the devs intended. If someone can give me a reason for why it has to be 
this way, I can just watch for it in the future. If not I suppose I should 
submit a bug report. 

In the meantime, I suppose the best practice is to never put the business end of 
your code in the built in handlers, but rather call a command or function that 
does all the work. That way you can send or dispatch to that handler and not to 
the built in one. 

Bob



_______________________________________________
use-livecode mailing list
use-livecode at lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

 



More information about the use-livecode mailing list