Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
¿Cómo Conocer La Clase De Un Objeto?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje ¿Cómo Conocer La Clase De Un Objeto? 
 
Pues eso. Supongamos que tienes un textbox que llama "Apellidos".

¿Cómo saber que es un textbox en tiempo de ejecución?

Algo así:
dim Apellidos as new TextBox

print que_es(Apellidos)

end

public function que_es(o as objeto) as string
    dim clase as string
         clase=Propiedad_o_metododesconocidoquemedicelaclase
return clase
end
 


El resultado debería ser "TextBox".

¿Alguien sabe cómo?
Se que existe la sentencia if o IS TextBox then, etc. etc. pero no quier recorrerme todas las clases existentes, quiero saber de donde saca IS esa información...

Saludos.
 




===================
No podemos regresar
 
última edición por shordi el Miercoles, 09 Noviembre 2016, 20:06; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Conocer La Clase De Un Objeto? 
 
Shordi:

Si exisite:

public function que_es(o as objeto) as string
dim clase as string
clase=Upper(Object.Class(o).name)
return clase
end


Lo pongo todo en mayúscula con upper, porque si necesito hacer comparaciones con textos, no la lio y siempre comparo con todo en mayusculas.

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Conocer La Clase De Un Objeto? 
 
Ok. Gracias Julio.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Conocer La Clase De Un Objeto? 
 
Solo por curiosidad: es posible conocer el nombre de la Clase de un objeto leyendo directamente a el 5° miembro de la Estructura CLASS, contenida en el file header " /....../main/gbx/gbx_class.h " de los fuentes de Gambas:    

Public Sub Form_Open()

  Dim p1, p2 As Pointer
  
   p1 = Object.Address(TextBox1)
  
' Accede a la Estructura "CLASS":
   p2 = Pointer@(p1)

' Accede al miembro "char * name" y lo dereferencia:
   TextBox1.Text = String@(Pointer@(p2 + IIf(SizeOf(gb.Pointer) = 8, 24, 16)))

End

 



 
última edición por vuott el Jueves, 10 Noviembre 2016, 00:53; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Cómo Conocer El Tipo De Control [Solucion... shordi General 8 Miercoles, 18 Noviembre 2009, 20:07 Ver último mensaje
soplo
No hay nuevos mensajes Diferencia Entre Clase Y Objeto? v3ctor General 10 Domingo, 31 Enero 2016, 10:21 Ver último mensaje
Shell
No hay nuevos mensajes Averiguar Si Un Objeto Es Una Instancia De... Shell General 0 Domingo, 30 Julio 2017, 01:30 Ver último mensaje
Shell
No hay nuevos mensajes ¿ Puede Una Clase Negarse A Construir Un ... Shell General 0 Sabado, 11 Abril 2020, 13:33 Ver último mensaje
Shell
 

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


 
Lista de permisos
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



  

 

cron