Autor |
Mensaje |
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Cómo Conocer El Tipo De Control [Solucionado]
En la misma línea que mi mensaje sobre cómo acceder a un control por el nombre, me gustaría saber si alguno sabe cómo averiguar el tipo de un control cuando recorres la colección Children de un contenedor.
Lo que busco es saber si se puede hacer algo como esto:
Supongamos que quiero asignar 123456 a todos los campos de un formulario. Para ello creo una procedimiento asignoNumero que recibe la referencia al formulario:
¿Alguna Idea?
=================== No podemos regresar
última edición por shordi el Miercoles, 18 Noviembre 2009, 19:19; editado 2 veces
|
#1 Miercoles, 18 Noviembre 2009, 10:15 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Cómo Conocer El Tipo De Control
typeof
¿Te refieres a esto?
|
#2 Miercoles, 18 Noviembre 2009, 15:33 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Cómo Conocer El Tipo De Control
Citar:
Así podés hacerlo:
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#3 Miercoles, 18 Noviembre 2009, 18:32 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Cómo Conocer El Tipo De Control
Pues no. TypeOf devuelve el tipo de variable, en este caso siempre 16, que quiere decir objeto, porque estamos tratando con controles.
Lo que quiero averiguar es la clase a la que pertenece el objeto, si es textbox, valuebox, combobox o lo que sea...
=================== No podemos regresar
|
#4 Miercoles, 18 Noviembre 2009, 18:42 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Cómo Conocer El Tipo De Control
Acabo de encontrar la solución. Resulta que existe la clase estática Object, que dispone de una serie de métodos para manipular objetos. Entre ellos
el metro type que devuelve el nombre de la clase.
Así, el código sería:
Realmente gambas carece de documentación por esas redes de Dios, que encontrar esto me ha costado un güebo. Supongo que eso es un mal endémico en los desarrollos acelerados...
=================== No podemos regresar
|
#5 Miercoles, 18 Noviembre 2009, 19:19 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Cómo Conocer El Tipo De Control [Solucionado]
Gracias fabianfv, hemos cruzado las respuestas y no había leído tu solución... tal vez hasta más clara que la mía.
=================== No podemos regresar
|
#6 Miercoles, 18 Noviembre 2009, 19:21 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Cómo Conocer El Tipo De Control [Solucionado]
No entiendo typeof porque efectivamente siempre devuelve 16 que es el valor de la constante gb.object.
mirando la documentación veo que en gambas 3 habrá dos nuevos métodos para objetos
object.class devuelve la clase a la que pertenece object
object.type devuelve el nombre de la clase a la que pertenece object.
He probado con "is" tal como dice la documentación y tampoco consigo resultados
Y tampoco consigo resultados. Evidentemente estoy usando estas cosas mal por no saber. Ya por probar pongo un formulario con un textbox diseñado en el formulario y añado uno dinámicamente y pruebo
Y todo es false. Según ese IS no hay ningún textbox en el formulario.
última edición por soplo el Miercoles, 18 Noviembre 2009, 20:05; editado 3 veces
|
#7 Miercoles, 18 Noviembre 2009, 19:54 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Cómo Conocer El Tipo De Control [Solucionado]
Citar:
He probado con "is" tal como dice la documentación y tampoco consigo resultados
IS compara tipos de datos no cadenas de caracteres, por lo que debes quitar las comillas:
Object.Type(o) devuelve el nombre del tipo de datos (en nombre de clase) como un string y su argumento debe ser de tipo Object.
Object.Is(o, "TextBox") devuelve un Boolean, su primer argumento es de tipo Object y el segundo argumento debe ser de tipo String (el nombre de una clase).
Estas posibilidades brindan mucha flexibilidad cuando se necesita saber el tipo de un objeto:
=================== Cómo programar con Gambas
Speed Books: informática libre.
última edición por fabianfv el Miercoles, 18 Noviembre 2009, 20:53; editado 2 veces
|
#8 Miercoles, 18 Noviembre 2009, 20:03 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Cómo Conocer El Tipo De Control [Solucionado]
ah, eso
Sin comillas si me funciona. Voy a seguir probando a ver que cosas saco.
|
#9 Miercoles, 18 Noviembre 2009, 20:07 |
|
|
|