One way to think about C_OBJECT is as an "alias." There's a master/single copy somewhere and all other references are nothing but aliases/references. Except when they're not. The OB Copy command is a way of explicitly cloning an existing object so that now you have two distinct copies.
Is that potentially confusing? Can it lead to hard-to-figure-out bugs? Yes and yes. Is it a reasonable thing to do in a language? Most every language that I've ever looked at thinks so, so why not 4D? But it does take keeping things clear in your head. The simplest approach is to figure out a few patterns that work consistently in a way that you understand and then try and get into more nuance. Otherwise, references can behave in ways very like badly used globals. Very easily. (Change something here and then unexpectedly other stuff changes. Unless it doesn't.) As Jeff pointed out, lacking comprehensive official documentation, relying on nuance is probably foolhardy anyway. But, again, 4D *officially* ignores this list. (To the point of not mentioning their excellent blog posts or tech notes, as far as I can tell), so don't expect answers here. Post on the forums and see how it goes. But please post back here for those of us that aren't using the forums. ********************************************************************** 4D Internet Users Group (4D iNUG) FAQ: http://lists.4d.com/faqnug.html Archive: http://lists.4d.com/archives.html Options: http://lists.4d.com/mailman/options/4d_tech Unsub: mailto:[email protected] **********************************************************************

