Propiedades de un Objeto!!

Propiedades de un Objeto!!

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

Postby danielr cyberia® » Tue Jun 05, 2007 6:54 pm

Saludos Cordiales Colegas!!

Jejejeje ya consegui algo!!

Code: Select all  Expand view  RUN
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
danielr cyberia®
 
Posts: 28
Joined: Sat Apr 28, 2007 4:06 am
Location: Venezuela

Postby Antonio Linares » Tue Jun 05, 2007 7: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í:
Code: Select all  Expand view  RUN
for n = 1 to Len( oObjeto )
   MsgInfo( oObjeto[ n ] )
next
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42151
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby danielr cyberia® » Tue Jun 05, 2007 8: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

Code: Select all  Expand view  RUN
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
danielr cyberia®
 
Posts: 28
Joined: Sat Apr 28, 2007 4:06 am
Location: Venezuela

Postby Antonio Linares » Tue Jun 05, 2007 8:38 pm

Daniel,

Se hace así:
Code: Select all  Expand view  RUN
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
User avatar
Antonio Linares
Site Admin
 
Posts: 42151
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 47 guests