Recorrer Las Propiedades De Una Clase [SOLUCIONADO]


Objetivo: 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.

última edición por tincho el Viernes, 17 Abril 2020, 21:16; editado 1 vez
Perfil MP  
Objetivo: Re: Recorrer Las Propiedades De Una Clase
Puedes ser más claro ?

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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

última edición por tercoIDE el Viernes, 17 Abril 2020, 21:24; editado 1 vez
Perfil MP  
Objetivo: 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.

última edición por tincho el Viernes, 17 Abril 2020, 21:21; editado 2 veces
Perfil MP  
Objetivo: 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.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1052s (PHP: -39% SQL: 139%)
Consultas SQL: 32 - Debug off - GZIP Activado