Naming Custom Properties

Peter Brigham MD pmbrig at gmail.com
Fri Apr 16 21:39:20 EDT 2010


On Apr 16, 2010, at 2:06 PM, DunbarX at aol.com wrote:

> I have no issue with this. I remember a while back that single char
> properties or variables caused a problem. I tested this in a button:
>
> on mouseenter
>    put random(99) into xxx
>    set the xxx of me to xxx
>    put the xxx of me
> end mouseenter
>
> gives a bunch of random number whenever you enter the object.
>
> Craig Newman
____________

Interesting -- I decided to try to get to the bottom of this. I  
probably haven't gotten to the bottom, but I found out some stuff. If  
I put the following in the script of button "set":

on mouseUp
    put empty into msg
    put "contents 1" into z
    set the yyy of this card to z
    set the w of this card to z
    put "prop contents are" && quote & z & quote \
           into tResult
    put cr & "the yyy of this card =" && (the yyy of this card) \
           & cr & "the z of this card =" && (the z of this card) \
           & cr after tResult
    put tResult
end mouseup

when I click then I get:

prop contents are "contents 1"
the yyy of this card = contents 1
the w of this card = contents 1

Put the following into the script of button "get":

on mouseUp
    put the yyy of this card into yyy
    put the w of this card into zzz
    put the w of this card into z
    put "yyy =" && yyy & cr after tResult
    put "z =" && z & cr after tResult
    put "zzz =" && zzz after tResult
    put tResult after msg
end mouseup

and you get:

yyy = contents 1
z = contents 1
zzz = contents 1

So you *can* usually use single-char prop names to store and retrieve  
customprops,
BUT
If you change the top handler to

on mouseup
    put empty into msg
    put "contents 1" into w
    set the yyy of this card to w
    set the w of this card to w
    --   *****    prop name is same as variable name
     put "prop contents are" && quote & z & quote \
           into tResult
    put cr & "the yyy of this card =" && (the yyy of this card) \
           & cr & "the w of this card =" && (the w of this card) \
           & cr after tResult
    put tResult
end mouseup
...
and then try to retrieve the property with the "get" button:
    put the yyy of this card into yyy
    put the w of this card into zzz
    put the w of this card into z

you get:

yyy = contents 1
z =
zzz =

So if you set a customprop w to w, it appears empty if you then try to  
get the prop and put it into a variable. The strange thing is that the  
engine can interpret "the w of this card" correctly in
put ... "the w of this card =" && (the w of this card)... after tResult
in the same handler it was set in. It just can't put "the w of this  
card" all by itself into a variable in a separate script. There seems  
to be a very specific glitch here.

Is there a bug report on this? I was unable to find one. It is rather  
obscure bug but it points to some wrinkle in the engine that should  
probably be looked at.

A stack for exhibiting this behavior is at
http://home.comcast.net/~pmbrig/custPropTest.rev.zip

-- Peter

Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig




More information about the use-livecode mailing list