Propiedades de un Objeto!!

Post Reply
User avatar
danielr cyberia®
Posts: 28
Joined: Sat Apr 28, 2007 4:06 am
Location: Venezuela

Propiedades de un Objeto!!

Post by danielr cyberia® »

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
User avatar
danielr cyberia®
Posts: 28
Joined: Sat Apr 28, 2007 4:06 am
Location: Venezuela

Post by danielr cyberia® »

Saludos Cordiales Colegas!!

Jejejeje ya consegui algo!!

Code: Select all

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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í:

Code: Select all

for n = 1 to Len( oObjeto )
   MsgInfo( oObjeto[ n ] )
next
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
danielr cyberia®
Posts: 28
Joined: Sat Apr 28, 2007 4:06 am
Location: Venezuela

Post by danielr cyberia® »

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

Code: Select all

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Daniel,

Se hace así:

Code: Select all

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
Post Reply