Rafa,
me temo que el error se debe a la forma de declarar las propiedades en la
clase. P.ej., la línea:
property lActive INIT .F. read ::FlActive write SetActive
debes dejarla como:
property lActive INIT .F. write SetActive
o mejor aún como:
property lActive INIT .F. write method SetActive
Te explico: Xailer siempre crea automáticamente la DATA interna Fxxxx con el
mismo nombre que la propiedad pero con una F delante, y esa DATA es
PROTECTED. Si no se usa la cláusula READ, Xailer crea una por defecto, que
devuelve el valor de Fxxxx. Lo mismo ocurre para la cláusula WRITE.
Al poner tú la cláusula READ como ::FlActive, se está creando un codeblock
así: {|| ::FlActive }, y al ser FlActive PROTECTED, da un error al acceder
desde fuera de la clase, en este caso desde el debugger. Sí, sé que no
debería dar este error, y lo revisaremos.
En resumen, si quitas completamente la cláusula READ, verás que ya no se
produce el error. Por cierto, el mecanismo interno por defecto de Xailer
para devolver y/o asignar los valores de una propiedad, es decir, sus
métodos READ y WRITE propios, son muchísimo más rápidos y eficientes que los
codeblocks.
Por otro lado, si a la cláusula READ o WRITE le añades METHOD, como en la
tercera línea del ejemplo, estarías indicando expresamente que se trata de
un métod, y Xailer lo resuelve al crear la clase. De la misma forma, si
utilizas READ INLINE o WRITE INLINE estarías indicando expresamente que se
trata de un codeblock. Si pones solamente READ o WRITE, Xailer tiene que
averiguar por su cuenta si es un método o un codeblock, y le cuesta un poco
más.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info