Using this method you would not be able to copy methods and events code. I don't see a way to do it in run-time, unless you want to create a class in run-time with all code in it writing the class script into a program. This probably can be done, but it's much more complex task.
>>Maybe I misstated my problem. I have an editbox on the screen. I want to add another editbox to the screen based on an existing editbox already on the screen. I don't want to instatiate another editbox based on a class from a library, but rather from the first editbox in its current state. When I create the second editbox on the fly the existing editbox's properties have already been modified or set that I may want to use as they currently exist. Basically, I'd like to be able to say something like:
>>
>> THISFORM.ADDOBJECT("edtMemo2", "THISFORM.edtMemo1")
>>
>>By the way, this code doesn't work because it can't find a class named THISFORM.edtMemo1 in any library. I tried it without the quotation marks around THISFORM.edtMemo1 as well...
>>
>>Jim
>
>Basically, if I undesrtood you right, you want to create a clone of your editbox, which almost all properties to be the same (I suspect, top, left and name properties must be different). Then here is an idea:
>
>local lcClass, lcClasslib, lnI, luValue
>lcClass = thisform.myFirstObject.class
>lcClassLib = thisform.myFirstObject.classlib
>* Create a new object of the same class
>thisform.NewObject("mySecondObject",m.lcClass,m.lcClassLib)
>=amembers(laProps,thisform.myFirstObject)
>for lnI1=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
>
>This is from the top of my head and not tested. But hopefully you can use it. I guess there could be more elegant and simple method to create a clone.
If it's not broken, fix it until it is.
My Blog