Grady,
I do not know, but I distrust, without reason, just gut feeling, the use of thisform.Controls in that way, although I am sure it works, I would never use it that way, for it seems to me the link between the new object created and the objects count of the parent is a "weak" link, there is, in my view, no guarantee that this will always be true, I do not know, imagine that the VFPT decide in the future to have the array ordered by name for whatever reason, then your code is no longer valid.
I would use something along this lines:
lcObjName = sys(2015)
Thisform.NewObject( lcObjName, "shape")
With Evaluate('Thisform.' + lcObjName)
Also, why you use the Count and the For, wouldn't be easy to just scan?
lcOrder = set("order")
set order to
scan
....
endscan
set order to &lcOrder
Sorry, I know I am not helping much with your real problem, just wanted to comment about those two things
Thank you for your comments.
I ain't skeert of nuttin eh?
Yikes! What was that?