Object naming

Martin Koob mkoob at rogers.com
Mon Jul 27 23:04:55 EDT 2020

Hi Alex

You could use the owner of the control in conjunction with the name of the control to distinguish between the two graphic’s named ‘R’.

I did that  for the  simple case in your example  but may not work with something more complex.

I created a stack with the same hierarchy of graphics and groups and using the following scripts in a button I placed on the card I can distinguish between  graphic A - R and B - R.

on mouseup

ask “enter owner name/control name/control colour"

put it into tResponse 

set the itemdelimiter to "/"

put item 1 of tResponse into tOwner

put item 2 of tResponse into tControl

put item 3 of tResponse into tControlColour

put findTargetControl(tOwner, tControl) into tTargetControl

set the backgroundcolor of control tTargetControl of group "A" to tControlColour

end mouseup

function findTargetControl pOwner, pControl

put the number of controls  of group "A" into tIndex

repeat with tControl = 1 to tIndex

if the short name of control tControl of group "A" = pControl then

if the short name of the owner of control tControl of group "A" = pOwner then

exit repeat

end if

end if

end repeat

return tControl

end findTargetControl

Martin Koob

> On Jul 27, 2020, at 8:47 PM, Alex Tweedly via use-livecode <use-livecode at lists.runrev.com> wrote:
> On 27/07/2020 21:26, Curry Kenworthy via use-livecode wrote:
>> Use unambiguous SHORT names!
> Thanks, but ...
> Yes, using unambiguous SHORT names solves this naming problem, but introduces other problems. In particular, this group script should (probably) be a behaviour script, since the group will be instantiated multiple times and will in the future need updating for enhancements or even (Heaven forfend!) bug fixes.
> Using unambiguous short names prevents behaviour scripts that references child controls completely, and even if I simply used normal scripts which were replicated for each instance, I'd still need to go through the script to change all the references to the child control names (a pain, and source of possible future errors).
> For now, I'm caching the IDs of the direct child controls in script-local variables in each instance of the group. If I find a name-based way that works reliably and allows behaviour scripts, I'll change - but this method works.
> I'll have this group ready for release soon (or soon-ish) so y'all'll be able to see how it turned out :-)
> Thanks again everyone,
> Alex.
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode

More information about the use-livecode mailing list