On 24 Mar 2006, at 16:12, J. Landman Gay wrote:
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.
This was just short hand to explain how I came to find the bug. What
I was trying to point out is that the problem was triggered by me
calling a handler in an unopened card from an object inside the same
(unopened card).
The actual code is:
put line 1 of the text of me into myFileName
get ISMPutMessage(ISM_FileSelected, kFileKind, myFileName)
The problem was in the ISM_FIleSelected handler in the *destination"
object. Which did this:
on ISM_PutMessage( heMessageID,theSubCode,theFilePathName)
--
-- Other code
--
put <something> into me --<something> being based on the file name.
--
-- Other code
--
end ISM_PutMessage
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.
I don't pass "me" as a parameter for the very reason you mention. The
problem is in the destination handler which is a different "me"!!!!!
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.
The bug is that:
put <something> into me
or
set the text of me to <something>
Doesn't work 100% of the time. Sorry for the confusion, I didn't mean
you to take the pseudo code I posted literally. I have found the bug
now and changed the offending lines to:
set the text of the long is of me to <something> and it works fine now.
Thanks a lot
All the Best
Dave
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution