CLEAR PUBLIC OX OX = CREATEOBJECT("z") ? PEMSTATUS(ox,"NPROP",5) ? PEMSTATUS(ox,"PPROP",5) && add PEMS(,,2) ? PEMSTATUS(ox,"HPROP",5) && add PEMS(,2) and TYPE() ADDPROPERTY(OX,"NPROP",7) && OK ADDPROPERTY(OX,"PPROP",7) && ERROR ADDPROPERTY(OX,"HPROP",7) && ERROR OX.NPROP=7 && OK OX.PPROP=7 && ERROR OX.HPROP=7 && ERROR ? VARTYPE(ox.NPROP)!='U' && OK ? VARTYPE(ox.XPROP)!='U' && OK ? VARTYPE(ox.PPROP)!='U' && ERROR ? VARTYPE(ox.HPROP)!='U' && ERROR DEFINE CLASS z as "textbox" HIDDEN HPROP PROTECTED PPROP HPROP = 1 PPROP = 2 NPROP = 3 ENDDEFINEyou see that the assignment raises the same error as ADDPROPERTY (o.k the error is misleading, but in TP3.0 it would be "Syntax error or pointer not defined")
>> AMEMBERS( m.laPropertySet, m.loMyObject ) >> IF ASCAN(m.laPropertySet,[cNewProperty],1,0,1,1)>0 && Case insensitive search, 0-not found >> ADDPROPERTY( m.loMyObject, [cNewProperty], [Test Information]) >> ENDIF >> >> && or should I do this instead: >> >> IF PEMSTATUS( m.loMyObject, [cNewProperty], 5) >> ADDPROPERTY( m.loMyObject, [cNewProperty], [Test Information]) >> ENDIF >>>>
>CLEAR > >PUBLIC OX >OX = CREATEOBJECT("z") > >? PEMSTATUS(ox,"NPROP",5) >? PEMSTATUS(ox,"PPROP",5) && add PEMS(,,2) >? PEMSTATUS(ox,"HPROP",5) && add PEMS(,2) and TYPE() > >ADDPROPERTY(OX,"NPROP",7) && OK >ADDPROPERTY(OX,"PPROP",7) && ERROR >ADDPROPERTY(OX,"HPROP",7) && ERROR > >? VARTYPE(ox.NPROP)!='U' && OK >? VARTYPE(ox.XPROP)!='U' && OK >? VARTYPE(ox.PPROP)!='U' && ERROR >? VARTYPE(ox.HPROP)!='U' && ERROR > >DEFINE CLASS z as "textbox" > HIDDEN HPROP > PROTECTED PPROP > > HPROP = 1 > PPROP = 2 > NPROP = 3 >ENDDEFINE >