The creation of custom properties is incoherent

Erik Hansen erikhans08 at yahoo.com
Mon Sep 13 19:17:06 EDT 2004


this may be incidental, but a
naming convention that uses: 
the uTot of stack (the mainstack of this stack)
the uFlag, the uHeight etc.
for all custom props might help.
(see Richard Gaskin's site).

Erik Hansen

--- "Dr.John R.Vokey" <vokey at uleth.ca> wrote:

> As many of you who use custom properties are no
> doubt aware, the 
> following script will produce two custom
> properties, "test" and "fred", 
> both set to values of true:
> 
> on test
>    set the test of this stack to true
>    put "fred" into test
>    set the test of this stack to true
> end test
> 
> So, the same script line results in a different
> result depending on 
> what came earlier (and globally) in the
> execution of the stack---a 
> potential source of almost impossible to track
> down bugs (well, at 
> least in my experience).  The problem, in my
> estimation, is that the 
> first use of the statement is incoherent.  As
> the custom property 
> "test" has yet to be created, the evaluation of
> the statement should 
> fail *because test has no value (yet), unlike
> the second use of the 
> statement*.  For consistency with the rest of
> transcript, the first use 
> (and all other *literal* uses) of the custom
> property label) should be 
> quoted or literals, as in: set the "test" of
> this stack to true (or set 
> the "te"&"st" of this stack to true, which, of
> course, *doesn't* 
> work!).  Indeed, virtually every newbie to the
> use of custom properties 
> in my experience does exactly that (i.e.,
> assumes that as a literal is 
> meant, a literal should be used), leading to an
> error.  The second use 
> is the above script is fine because it is
> referring either to a 
> built-in property or to a previously defined
> custom property whose name 
> is the value of test.  It shouldn't create a
> new custom property if the 
> first two possibilities are false.
> 
> Furthermore, with the current scheme, one can't
> do the following:
> 
>    repeat with i=1 to 5 -- create and set 5
> custom properties
>      set the ("prop"&i) of this stack to i
>    end repeat
> 
> rather one has to resort to:
> 
>    repeat with i=1 to 5 -- create and set 5
> custom properties
>      put ("prop"&i) into x -- assume x is a new
> variable name
>      set the x of this stack to i
>    end repeat
> 
> which is fine, I guess (not really!), unless a
> property named "x" 
> already exists!
> 
> I don't know what to recommend at this point,
> but it really is a bug 
> waiting to bite the unwary.  Unfortunately,
> unlike unquoted button and 
> field names, which can be rendered consistent
> and bug-potential free by 
> the scripter simply by quoting all such names,
> no such option is 
> available here.
> --
> John R. Vokey, PhD
> Professor
> B.E.R.G. - Behaviour and Evolution Research
> Group
> Micro-Cognition Laboratory
> Department of Psychology & Neuroscience
> University of Lethbridge
> Lethbridge, Alberta T1K 3M4
> CANADA
> 
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
>
http://lists.runrev.com/mailman/listinfo/use-revolution
> 


=====
erik at erikhansen.org    http://www.erikhansen.org


	
		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 


More information about the use-livecode mailing list