msg='' SET TEXTMERGE ON TO MEMVAR msg NOSHOW x=CREATEOBJECT("empty") ADDPROPERTY(x,'mypro',0) ADDPROPERTY(x,'amypro[1]',0) mypro=0 DIMENSION amypro[1] amypro[1] = 0 t1=SECONDS() FOR ih=1 TO 1000000 NEXT fixtime=SECONDS()-m.t1 t1=SECONDS() FOR ih=1 TO 1000000 =m.mypro NEXT \ read var <<SECONDS()-m.t1-m.fixtime>> t1=SECONDS() FOR ih=1 TO 1000000 STORE 1 TO mypro NEXT \ write var <<SECONDS()-m.t1-m.fixtime>> t1=SECONDS() FOR ih=1 TO 1000000 =m.amypro NEXT \ read array var <<SECONDS()-m.t1-m.fixtime>> t1=SECONDS() FOR ih=1 TO 1000000 STORE 1 TO amypro NEXT \ write array var <<SECONDS()-m.t1-m.fixtime>> t1=SECONDS() FOR ih=1 TO 1000000 =m.x.mypro NEXT \ read property <<SECONDS()-m.t1-m.fixtime>> t1=SECONDS() FOR ih=1 TO 1000000 x.mypro = 1 NEXT \ write property <<SECONDS()-m.t1-m.fixtime>> t1=SECONDS() FOR ih=1 TO 1000000 =m.x.amypro NEXT \ read array property <<SECONDS()-m.t1-m.fixtime>> t1=SECONDS() FOR ih=1 TO 1000000 x.amypro = 1 NEXT \ write array property <<SECONDS()-m.t1-m.fixtime>> SET TEXTMERGE TO SET TEXTMERGE OFF MESSAGEBOX(msg)I have test this also within a complex application.