Recorrer Las Propiedades De Una Clase [SOLUCIONADO]


Subject: Recorrer Las Propiedades De Una Clase [SOLUCIONADO]
Hola a todos.
¿Alguien sabe como recorrer las propiedades de un objeto creado con una clase?
¿Como se hace enumerable una clase?
Saludos.

Last edited by tincho on Friday, 17 April 2020, 21:16; edited 1 time in total
Profile PM  
Subject: Re: Recorrer Las Propiedades De Una Clase
Puedes ser más claro ?

Profile PM  
Subject: Re: Recorrer Las Propiedades De Una Clase
Supongo que quieres enumerar las propiedades de una clase pero una vez que se instancia. Antes de instanciarla no creo que sea posible.

Una vez instanciada la clase, puedes enumerar sus símbolos de esta forma:

Private myclase as New ClaseBonita

' Dentro de algún método enumeramos:
Dim obj as String

For Each obj In myclase.Symbols
If myclase.Symbol.Kind(Class.Property) Then
Print obj;;
End If
Next


Más o menos sería así, pero el resultado podría contener además variables, constantes, etc, por lo que tendrás que filtrar según tus preferencias como he hecho en la cláusula if then. No lo he probado, escribo de memoria.


Saludos

Profile PM  
Subject: Re: Recorrer Las Propiedades De Una Clase
Esto recorre las propiedades de una clase y devuelve sus valores. La inversa es similar pero con "SetProperty". XML ready!!!
Dim propiedad As String, propiedades As String[]

propiedades = Object.Class(UnObjeto).Symbols


For Each propiedad In propiedades
' el Try es porque si "propiedad" no es una Property, sino un Metodo, da error
Try Debug propiedad, Object.GetProperty(UnObjeto, propiedad)

Next

Last edited by tercoIDE on Friday, 17 April 2020, 21:24; edited 1 time in total
Profile PM  
Subject: Re: Recorrer Las Propiedades De Una Clase
Ya esta, si efectivamente como dice Jesús se pueden ver que propiedades tiene una "clase" pero no del objeto creado a partir de esta.
La ayuda vino de el programa ExploraClases que hizo Shordi.
El código que use es básicamente el siguiente.
1) Obteniendo la lista de variables y propiedades de la clase

c = Classes["NombreDeLaClase"]
For Each s In c.Symbols
Select c[s].Kind
Case Class.Variable
tvar.Add(c[s].Name)

Case Class.Constant

Case Class.Event

Case Class.Property'
tpro.Add(c[s].Name)


Case Class.Method

End Select
Next


2) consultar en el objeto una propiedad o variable por su nombre.
For Each pr In tpro
Print Object.GetProperty(obj, pr)
Next

Eso es todo.
Saludos.

Last edited by tincho on Friday, 17 April 2020, 21:21; edited 2 times in total
Profile PM  
Subject: Re: Recorrer Las Propiedades De Una Clase
tercoIDE escribió:  
Me parece que esto puede ayudar ....
Static Function GetProperty ( Object As Object, Property As String ) As Variant
Gets the value of an object property dynamically.
Object is the object reference.
Property is the name of the property.
This method returns the value of the property.

Si , esto es para consultar los datos, es la segunda parte, la primera es averiguar el nombre de las propiedades.
Saludos.

Profile PM  

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.4155s (PHP: -76% SQL: 176%)
SQL queries: 25 - Debug Off - GZIP Enabled