Gente:,
Compilando con Harbour y; en la primer clase llamada al ejecutar la app, tengo definida una CLASSDATA. Esta data no es visible en otras classes que compone la misma app.
Se puede declarar una DATA static o public, como?
Chaco - Argentina
Gente:,
Compilando con Harbour y; en la primer clase llamada al ejecutar la app, tengo definida una CLASSDATA. Esta data no es visible en otras classes que compone la misma app.
Se puede declarar una DATA static o public, como?
Mario,
DeberÃa ser visible.
Por ejemplo, la Clase TWindow tiene la CLASSDATA lRegistered
Prueba a hacer:
MsgInfo( TWindow():lRegistered )
Gracias antonio
Me llamó la atención
Reviso mi codigo, algo no estaré haciendo bien
Mario.
Es que no tiene que ser visible desde "otras clases" sino desde las clases derivadas de la clase donde se define...
Las CLASSDATA funciona como una DATA static por lo que puede ser llamada como te indica Antonio, simplemente llamando a la función constructora de la clase y enviándole la CLASSDATA o el CLASSMETHOD.
Ideal para crear una clase TUtil por ejemplo y poder hacer TUtil():miMetodo() o TUtil():miData esto evitarÃa tener que crear un objeto...
![]()
Estimado Manu;
Por si no recordás (por las consultas hechas en ese momento), me inicié en la programación POO leyendo un documento tuyo y otro de Rafa Carmona; que Maestros!
Como buen autodidacta, algunos conceptos quedaron prendidos por hilos
Y como nunca es tarde para aprender... seguiré estudiando
gracias!
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 obj1Estimado Manu;
Te agradezco muchÃsimo tu predisposición y tiempo. Pero mayormente agradezco que nuestra pasión nos haya convertido en AMIGOS
Viendo tu sencillo ej. concluyo es que mis conceptos no estan alejados; por lo que seguramente, estaré cometiendo algún error.
En cuanto a betatester... acá estoy!
seguimos en contacto...