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 ENDPROCFabio