Weirdness Passing Messages

J. Landman Gay jacque at hyperactivesw.com
Fri Mar 24 11:12:30 EST 2006


David Burgun wrote:

> Incidentally, the above works  just fine regardless of the stack/card/ 
> object using "put <something> into me". The problem I described  
> yesterday was brought to light because when a new folder is selected,  I 
> wanted to select the first line (file) in the list, so inside  
> ISM_FolderSelect(), I did a ISMPutMessage("ISM_FileSelected,  kFileKind, 
> line 1 of me), when this happened, "me" in the receiving  handler got 
> Beswick'ed!

Which is reasonable, I think. Think about this a moment -- parameters 
are always evaluated before being passed. When you pass "me" in a 
parameter, the "me" will refer to the object currently executing the 
script, not the target object the script will eventually refer to later. 
This is normal behavior.

Take this example:

   addNums (1+1)

The addNums handler will receive a parameter of "2", not "1+1". Ditto 
for "me", which will be interpreted as the object *currently* running 
the script, not the future target of the handler reference.

When passing a reference parameter, use an ID or other static reference, 
not "me" which is always subject to interpretation. As you found out. ;)

If you absolutely must use "me" then you can try putting the parameter 
in quotes to force it into acting as a string. Strings won't be 
evaluated. I don't know if this will work in your situation but you can 
try it.

Now that I understand your usage better, I do not think this is a bug.

-- 
Jacqueline Landman Gay         |     jacque at hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com



More information about the Use-livecode mailing list