Artículo original: The scope of CREATEOBJECT
http://www.foxpert.com/KnowlBits_200701_3.htm
Autor: Christof Wollenhaupt
Traducido por: Ana María Bisbé York
En ocasiones, uno llega a entender que algunas cosas son absolutamente desaprovechadas. Una de ellas es el alcance de CREATEOBJECT(). La primera vez que usted instancia un objeto desde una clase, Visual FoxPro crea una plantilla del objeto con todas los valores de las propiedades definidas en la clase. Si la definición de clases contiene una expresión para alguna de las propiedades, Visual FoxPro la evalúa en ese momento. Para futuras instancias, Visual FoxPro utiliza el valor de la expresión evaluada anteriormente.
Ahora, la parte desaprovechada de este artículo: Todas las propiedades de clases son evaluadas en el ámbito del procedimiento o método que instancia el objeto. Esto significa, que en las expresiones de propiedades de clases puede acceder a todas las variables locales en ese procedimiento:
Local lcVar, loRef lcVar = "Hi" loRef = CreateObject("Test") ? loRef.cTest Define Class Test as Custom cTest = m.lcVar EndDefine
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.