>CLEAR > >? TYPE('aaa(1)') && Print "U", then do not eval functions >? VARTYPE(aaa(1)) && Print "N", eval functions > >x = CREATEOBJECT('textbox') >? TYPE('x.Click()') && Print "U", then do not eval methods >? VARTYPE(x.Click()) && Print "L", eval methods > >? TYPE('bbb(1)') && Print "U" can eval undef array >? VARTYPE(bbb(1)) && ERROR cannot eval undef array, it use (bbb(1),.T.) internal routine > >* VARTYPE(exp,.T.) is usable only with if exp is evaluable >? VARTYPE(cx,.t.) && ERROR >? VARTYPE(aab(1),.t.) && ERROR > >* A incomplete explain table: >*********************************************************************************************************** >************ Scalar * Array * Fields * Procedure * Method * Internal Object * External Object * NULL * >*********************************************************************************************************** >* TYPE * OK * OK * OK * BUG * BUG * OK * ?? OK * type * >*********************************************************************************************************** >* VARTYPE * OK * BUG * !!!! * OK * OK * OK * ERR/CRASH * X * >*********************************************************************************************************** >* VARTYPE(,T) * BUG * BUG * BUG * BUG * BUG * BUG * ERR/CRASH * X * >*********************************************************************************************************** > >PROCEDURE aaa(z) > RETURN m.Z >ENDPROC >>