>I have made two slight modifications (debugging it). For testing I put it in the Click() of a checkbox, named myFirstObject. It works nicely, but indeed the methods and events are not copied.
>
local lcClass, lcClasslib, lnI, luValue
>lcClass = thisform.myFirstObject.class
>lcClassLib = thisform.myFirstObject.classlibrary
>* Create a new object of the same class
>thisform.NewObject("mySecondObject",m.lcClass,m.lcClassLib)
>=amembers(laProps,thisform.myFirstObject)
>for lnI=1 to alen(laProps)
> if not inlist(lower(laProps[m.lnI]),'class','classlib','top','left','name')
> try
> luValue = getpem(thisform.myFirstObject, laProps[m.lnI])
> store m.luValue to ("thisform.mySecondObject." + laProps[m.lnI])
> catch
> =Messagebox(laProps[lnI]+" property is read-only")
> endtry
> endif
>next
>
>
So, it worked?! Great. In the inlist we need to change classlib to classlibrary then..
With aMembers we can get events and properties. If we can get everything when we can write a script for creating a class, then instantiate an object of that class. So, it's possible, but as I said, it's more work involved, so I leave the exercise to the thread's originator.
If it's not broken, fix it until it is.
My Blog