FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Propiedades de un Objeto!!
Posts: 28
Joined: Sat Apr 28, 2007 04:06 AM
Propiedades de un Objeto!!
Posted: Tue Jun 05, 2007 06:37 PM

Saludos Cordiales Colegas!!!

Es posible saber las propiedades de un objeto? o por lo menos sus variables contenidas!!

Ej: oObj:cCadena:="Hola"
oObj:nValor :="1234"
oObj:aData :={"BRASIL","ALEMANIA","PORTUGAL"}
oObj:lTrue :=.F.
oObj:dFecha :=DATE()

Y entonces alguna funcion que me muestre lo que tiene contenido oObj

Ej: View(oObj) o algo asi???

Se podra???

Best Regards- Saludos y Exitos



Daniel Rivas
Posts: 28
Joined: Sat Apr 28, 2007 04:06 AM
Propiedades de un Objeto!!
Posted: Tue Jun 05, 2007 06:54 PM
Saludos Cordiales Colegas!!

Jejejeje ya consegui algo!!

PROCE MAIN()
local aObj := aOData(oObj)

ViewArray(aObj)

 
RETURN


Pero hay una propiedad de aOData que se llama eho! pero no se que hace ni como funciona! si saben algo me avisa!! en el arreglo solo aparencen las variables! me gustaria que mostraran sus valores!! si saben algo!! me avisan!!!

La sentencia es aOData.eho: !!!
Best Regards- Saludos y Exitos



Daniel Rivas
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Propiedades de un Objeto!!
Posted: Tue Jun 05, 2007 07:06 PM
Daniel,

Tanto en Clipper como en Harbour, los objetos estan contenidos en arrays (son arrays con sus datos, más un puntero a su clase, para localizar los métodos), por lo que puedes inspeccionar un objeto así:
for n = 1 to Len( oObjeto )
   MsgInfo( oObjeto[ n ] )
next
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 28
Joined: Sat Apr 28, 2007 04:06 AM
Propiedades de un Objeto!!
Posted: Tue Jun 05, 2007 08:20 PM
Saludos Cordiales Colegas!!

Antono! Muchas Gracias por tu atención

Me parece bien lo que planteas! pero asi solo me muestra los valores de las variables! sin decirme a quien pertenece esos valores! y el otro metodo solo me trae las variables que al parecer no esten vacias o nulas!

Imaginate entonces que hice lo siguiente

PROCE MAIN()
LOCAL aObj:=aOData(oDp),I,aData:={}


FOR I=1 TO LEN(aObj)

AADD(aData,{aObj[I],oDp[I]})

NEXT I

ViewArray(aData)


RETURN


Pero asi hay disparidad entre la cantidad de LEN(aObj) con LEN(oDp) porq aObj esta contenidad de variables que al parecer no esten vacias o nulas y oDp cuanta a todas! Creo que es eso!! jeje!

De todas maneras lo que debo hacer es un listado de las variables con sus valores que esten contenidas en el objeto! como se hara eso?!

Gracias por Todo!!!!
Best Regards- Saludos y Exitos



Daniel Rivas
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Propiedades de un Objeto!!
Posted: Tue Jun 05, 2007 08:38 PM
Daniel,

Se hace así:
function Main()

   local oError := ErrorNew()
   local aInfo := __ClassSel( __ClassH( oError ) )
   local n

   for n = 1 to Len( aInfo )
      MsgInfo( aInfo[ n ] )
   next

return nil

Los nombres que empiezan por "_" son datos asignables, así para diferenciar una DATA de un método se sabe porque existe el mensaje que empieza por "_". El siguiente paso es enviar el mensaje al objeto dado el nombre del mensaje.
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion