Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Recorrer Las Propiedades De Una Clase [SOLUCIONADO]

Recorrer Las Propiedades De Una Clase [SOLUCIONADO]
Artículo
Responder citando    Descargar mensaje  
Mensaje 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 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Viernes, 17 Abril 2020, 16:38 ]
 


Recorrer Las Propiedades De Una Clase [SOLUCIONADO]
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Recorrer Las Propiedades De Una Clase 
 
Puedes ser más claro ?  



 
vuott - Ver perfil del usuario Enviar mensaje privado  
vuott [ Viernes, 17 Abril 2020, 17:43 ]
Responder citando    Descargar mensaje  
Mensaje 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



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Viernes, 17 Abril 2020, 20:08 ]
Responder citando    Descargar mensaje  
Mensaje 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 
tercoIDE - Ver perfil del usuario Enviar mensaje privado  
tercoIDE [ Viernes, 17 Abril 2020, 20:55 ]
Responder citando    Descargar mensaje  
Mensaje 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 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Viernes, 17 Abril 2020, 21:16 ]
Responder citando    Descargar mensaje  
Mensaje 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.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Viernes, 17 Abril 2020, 21:23 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron