|
Página 1 de 2
|
Crear Controles En Tiempo De Ejecución...
Autor |
Mensaje |
ariel
Aprendiz
Registrado: Octobre 2009
Mensajes: 51
Edad: 55
|
Crear Controles En Tiempo De Ejecución...
Hola!
Sigo molestando....
Tengo el siguiente "problema", y me falta información para poderlo implementar.
Necesito hacer una herramienta que tenga 16x16 botones, que al hacerles "click" cambien un color previamente elegido de una paleta.
El problema -que seguramente mas de uno ya lo ha resuelto- es que:
1) No se como hacer un...."boton.new" o asi, y crearlo con un determinado tamaño, color y posición. (Este es el problema que seguramente voy a resolver más fácilmente)
2) Una vez que tenga los 256 botones ¿Como hago para no tener que escribir 256 veces el código que los hace cambiar de color?
El problema 2 viene por que no hay posibilidad de crear algo así como btn_Boton(n) con "n" variando entre 1 y 256 ¿Se entiende?
Al no poder tener botones dentro de un arreglo, como se hace en Visual Basic ¿como puedo utilizarlos sin volverme loco?
¿Alguna idea que pueda ayudarme?
|
#1 Sabado, 16 Octobre 2010, 19:14 |
|
|
Ayortano
|
Re: Crear Controles En Tiempo De Ejecución...
Como siempre, variables de tipo integer que tienen el tamaño, X, Y, etc y que vas aumentando cada vez que creas un control:
Como ves, al crear el nuevo botón se lo agrega a un grupo, y ese grupo ahora gestiona los eventos de todos a la vez. Para saber el objeto (en este caso, un botón) que lanzó el evento, escribes last, como si fuera un objeto normal, con sus propiedades (aunque no las sugerirá). Cuando he puesto "Me" es para que se genere en el formulario, pero puedes hacer que se haga en cualquier contenedor.
última edición por Invitado el Lunes, 25 Octobre 2010, 00:57; editado 3 veces
Editado por Invitado, Jueves, 01 Enero 1970, 01:00:
|
#2 Sabado, 16 Octobre 2010, 20:55 |
|
|
ariel
Aprendiz
Registrado: Octobre 2009
Mensajes: 51
Edad: 55
|
Re: Crear Controles En Tiempo De Ejecución...
Como siempre, un verdadero maestro! Simple y efectivo.
Que bueno es este gambas, por favor!!!
Que interesante seria disponer de un libraco de 1500 páginas como esos que abundan para VB y que nos guiase paso a paso hasta conocer todo lo que se puede hacer con gambas, y sobre todo, como hacerlo.....
¿Nunca encararon un proyecto asi?
|
#3 Sabado, 16 Octobre 2010, 21:16 |
|
|
ariel
Aprendiz
Registrado: Octobre 2009
Mensajes: 51
Edad: 55
|
Re: Crear Controles En Tiempo De Ejecución...
PD: He cambiado la froma en que se incrementan X y , por que como estaba originalmente se iban colocando sobre la diagonal, ya que para cada valor de "i" se incrementaban AMBOS valores (x e y).
He probado asi:
X = (i - Int(i / 16) * 16) * 16
Y = Int(i / 16) * 16
y va de maravilla.
Gracias de nuevo.
|
#4 Sabado, 16 Octobre 2010, 21:29 |
|
|
Ayortano
|
Re: Crear Controles En Tiempo De Ejecución...
Bien, sobre el libro, Fabián estaba en algo de eso...
|
#5 Sabado, 16 Octobre 2010, 22:11 |
|
|
ariel
Aprendiz
Registrado: Octobre 2009
Mensajes: 51
Edad: 55
|
Re: Crear Controles En Tiempo De Ejecución...
Ok! Gracias por el dato.
|
#6 Sabado, 16 Octobre 2010, 23:11 |
|
|
ariel
Aprendiz
Registrado: Octobre 2009
Mensajes: 51
Edad: 55
|
Re: Crear Controles En Tiempo De Ejecución...
Soy un cabezotas.....
Con la ayuda de Ayortano (gracias campeón!) he logrado "armar" el grid de controles que necesito. Pero sigo sin poder hacer "algo" cuando el usuario les hace clik.
Por ejemplo: con este código
DIM Xini AS Integer = 20 ' Puedes establecer una posición inicial
DIM Yini AS Integer = 20 ' Puedes establecer una posición inicial
DIM i, X, Y AS Integer
DIM btn AS CheckBox ' En este caso es un checkbox
X = Xini
Y = Yini
FOR i = 1 TO 256
btn = NEW CheckBox(ME) AS "chkPaleta" ' Se crea un check en el form, que será parte del grupo chkPaleta
btn.X = X
btn.Y = Y
btn.W = 16
btn.H = 16
X = (i - Int(i / 16) * 16) * 16 + Xini
Y = Int(i / 16) * 16 + Yini
NEXT
puedo crear este arreglo de checkboxes:
Uploaded with ImageShack.us
Pero no logro darme cuanta como hacer que, por ejemplo, cada vez que se haga click en uno de ellos pueda cambiar el contenido de un laberl o cualquier otra cosa. En mi aplicacion incluso necesitaría "leer" el estado de toda una fila o columna de controles. Se en que orden los he creado, por lo que se que toda la columna 1, por ejemplo, son el control 1,17,etc (por decir algo), pero no se como "referirme" a ellos....¿Se entiende cual es mi problema?
¿Como puedo resolverlo?
Me estoy volviendo loco con esto...
|
#7 Domingo, 24 Octobre 2010, 20:39 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Crear Controles En Tiempo De Ejecución...
Hola
Si quieres diferenciar cada uno de esos botones lo que tienes que hacer es ponerles por ejemplo el tag a cada uno.
El bucle anterior sería así:
For i = 0 To 256
btn = New Button(Me) As "btnPaleta" ' Se crea un botón en el form, que será parte del grupo btnPaleta
btn.tag=x 'En el tag queda la instancia que corresponde a cada botón
btn.X = X
btn.Y = Y
btn.W = 16
btn.H = 16
X += 16 ' Se aumenta X
Y += 16 ' Se aumenta Y
Next
Como todos los botones tienen el grupo btnPaleta le haces un evento al grupo en vez de a cada botón
Y ya está.
|
#8 Domingo, 24 Octobre 2010, 21:05 |
|
|
ariel
Aprendiz
Registrado: Octobre 2009
Mensajes: 51
Edad: 55
|
Re: Crear Controles En Tiempo De Ejecución...
Estoy seguro que cuando lo haga anda voy a decir "Pero...que tontera era!!!", mientras tanto, sigo rompiendomé el coco
El lunes te cuento como me fue, o planteo las dudas que surjan.
Estoy armando a las apuradas un editor de caracteres, para hacer un par de fuentes de 8x8 pixeles....y ya me parece que tardo mas con esto que si las hubiese dibujado en papel cuadriculado y codificado a mano
Gracias!
|
#9 Domingo, 24 Octobre 2010, 22:11 |
|
|
ariel
Aprendiz
Registrado: Octobre 2009
Mensajes: 51
Edad: 55
|
Re: Crear Controles En Tiempo De Ejecución...
Me parece que lo que necesito no puedo hacerlo en Gambas....
Con esto:
Puedo hacer "algo" cuando el usuario cambia el estado de un control cualquiera dentro de la grilla. Pero me parece que no puedo hacer nada con los demás...es decir: si quiero que un label contenga el valor del boton1 + el valor del boton2 x 2 + el valor del boton 3 x 4 ....etc, no puedo acceder al valor actual de un botón en particular....no?
|
#10 Domingo, 24 Octobre 2010, 22:52 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|