Claro que sí Mario...
Al menos, a mí, me tienes para cualquier duda que quieras resolver en cualquier momento, a estas alturas y después de lo que hemos pasado, te considero un AMIGO
Las CLASSDATAs son DATAS estáticas para la jerarquía de clases, esto
quiere decir que el valor que le asignes a esa DATA en una instancia de una clase de la jerarquía (objeto) será visible en el resto de objetos instanciados de esas clases. Imagina esto:
- Code: Select all Expand view
CLASS TMiCls
CLASSDATA miData
...
END CLASS
// y otra clase derivada o hija
CLASS TMiCls2 FROM TMiCls
...
END CLASS
// y otra
CLASS TMiCls3 FROM TMiCls
...
END CLASS
// o incluso derivada de una hija
CLASS TMiCls4 FROM TMiCls2
...
END CLASS
// Se podria hacer esto:
...
local oOb1 := TMiCls1():new()
local oOb2 := TMiCls2():new()
local oOb3 := TMiCls3():new()
local oOb4 := TMiCls4():new()
// Y si se hace esto:
oOb1:miData := "Asignado en obj1"
? oOb1:miData // Sale -> Asignado en obj1
// Pero si hago esto
? oOb4:miData // Sale esto también -> Asignado en obj1
// o esto sin instaciar un objeto
TMiCls():miData // Sale esto también -> Asignado en obj1
Como ves ::miData al ser una DATA estática es visible en cualquier objeto instaciado de una clase de la jerarquía.
Para que ocurra que una CLASSDATA fuera visible en cualquier objeto de una aplicación tendrías que crear una clase por ejemplo TMiAplicacion con las CLASSDATAS que quieras y que de ahí derivaran todas las clases de tu aplicación.
Saludos amigo Mario
Espero poder ayudarte cuando lo necesites.
PD: Espero poder contar contigo como betatester de HDO. De momento la tengo terminada para SQLite y quiero implememta otro RDL para MySQL. Será bonito desarrollar una aplicación que funcione para cualquier base de datos cambiando sólo el RDL y no tener que tocar ni una letra del código incluso si se programa para ello sin tener que re-compilar la aplicación. Y todo eso con acceso nativo al cliente de la BBDD.