Parent of Target

Richard Gaskin ambassador at fourthworld.com
Thu Aug 10 13:44:53 EDT 2017


Mark Wieder wrote:
> I do use getter and setter routines regularly. I think your function is 
> useful, but won't by itself get at the question of "who changed that?", 
> and for that question there are at least two possible methods:
> 
> method 1:
> 
> local sCurrentFlavorA
> 
> command setCurrentFruitFlavorTo pFlavor
>    put pFlavor into sCurrentFlavor["fruit"]
> end setCurrentFruitFlavorTo
> 
> setCurrentFruitFlavorTo "orange"
> 
> method 2:
> 
> setProp CurrentFruitFlavor pFlavor
>    put pFlavor into sCurrentFlavor["fruit"]
> end CurrentFruitFlavor
> 
> getProp CurrentFruitFlavor
>    return sCurrentFlavor["fruit"]
> end CurrentFruitFlavor
> 
> set the CurrentFruitFlavor of me to "orange"
> get the CurrentFruitFlavor of me

With rare exceptions I use Method 1 almost exclusively.

Method 2 feel more natural in many respects, but suffers from one 
drawback critical in some cases:  when lockMessages is true getProp and 
setProp won't fire.

Custom handlers will always fire regardless of the current state of 
message locking.

This has been discussed before, and IIRC Mark Waddingham expressed an 
interest in perhaps reclassifying getProp and setProp from system 
messages to custom messages, so they would become as immune to locking 
as other custom handlers.  But despite the good intention, it seems the 
work involved would have murky non-trivial implications.

So for the sake of robustness (and sanity during debugging when things 
go mysteriously wrong), as much as I would prefer to use property syntax 
for things that behave like properties, I don't.

-- 
  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  ____________________________________________________________________
  Ambassador at FourthWorld.com                http://www.FourthWorld.com




More information about the use-livecode mailing list