FUNCTION CopyProp LPARA o1, o2 * Copy all property values from one object to another IF TYPE('o1.Name') <> "C" OR TYPE('o2.Name') <> "C" RETURN .F. ENDIF lnPropertyCount = AMEMBERS(aProps, o1) FOR i = 1 TO lnPropertyCount IF !ALLTRIM(UPPER(aProps(i)))$"CLASS:PARENTCLASS:BASECLASS:NAME" uVal = GETPEM(o1,aProps(i)) && Value of property in source IF PEMSTATUS(o2,aProps(i),5) && Does property exist in the second object? IF !PEMSTATUS(o2,aProps(i),1) && Is the property readonly? IF !PEMSTATUS(o2,aProps(i),2) && Is the property protected? o2.WriteExpression(aProps(i), uVal) ENDIF ENDIF ENDIF ENDIF ENDFOR