Visual Basic - Crear array de controles en ejecucion

Life is soft - evento anual de software empresarial
 
Vista:

Crear array de controles en ejecucion

Publicado por Arise (2 intervenciones) el 27/11/2002 13:06:03
Hola!
Estoy realizando un programa parecido al arkanoid. Mi problema es que necesito crear un array de labels de forma que hagan la funcion de los ladrillos del juego. El problema es ke tengo ke crearlo en tiempo de ejecución porke no se el tamaño ke le dara el usuario a la ventana. He pensado en hacer una coleccion de labels. El problema es ke con el codigo de mas abajo me da un error porke me dice ke la variable de tipo object no esta definida en la linea *:
Dim colLadrillos As New Collection
Dim Ladrillo As Label

Ladrillo.BackColor = &HFF&*
Ladrillo.BorderStyle = 1
Ladrillo.Height = 375
Ladrillo.Width = 1095
Ladrillo.Left = 360

colLadrillos.Add Ladrillo, 1

Gracias de antemano y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Crear array de controles en ejecucion

Publicado por Fernando (166 intervenciones) el 27/11/2002 15:32:19
Hola, te cuento, estube viendo el código que pusiste, y en principio, el primer problema, es que te falta instanciar la clase, vos declaras la variable Ladrillo, como un tipo de objeto, pero despues te falta cargarla, con una instruccion como la siguiente Set Ladrillo = New Label pero asi mismo, no me dejo hacerlo, por lo qeu estube leyendo no permite crear instancias de segun que objetos, si en ves de un label, lo haces con un Form, es decir, el ladrillo lo declaras As Form tu código se ejecuta perfectamente, crea el formulario, le pone el color rojo que vos queres, etc.
La solución que se me ocurre, puede ser por un lado que crees vos tu tipo de control, no estoy seguro que esto funcione, pero podes probar, y la otra, (que yo haria esto) seria crear una matris de controles label, la cantidad máxima que vayas a presisar, las pones invisibles, y despues trabajas como con cualquier matris, despues de todo, lo que decis, cuando agranden o achiquen el tamaño de tu pantalla, lo que deberia hacer es agrandar o achicar las piezas, no agregarle o quitarle piezas... ya que se te va a complicar muchisimo a la hora de controlar los errores que vienen cuando el usuario a mitad de una partida te agranda o achica el formulario, ¿como sabes donde agregar una pieza, sin ponerla sobre otra que ya elimino mientras jugaba?, esto es una idea personal, el juego es tuyo, y no me quiero meter... pero yo haria eso, crearia una matris directamente, y si cambia el tamaño del formulario, que cambie el tamaño de las piezas.
Suerte, y disculpa lo largo de la respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear array de controles en ejecucion

Publicado por Pancho (53 intervenciones) el 27/11/2002 15:42:19
Hola

Para ello creas la etiqueta Ladrillo y en la propiedad index le pones 0

luego

Form_Load()
Dim nI as Integer
For nI = 1 To nLadrillos
Load Ladrillo(nI)
Ladrillo(nI).BackColor = &HFF&*
Ladrillo(nI).BorderStyle = 1
Ladrillo(nI).Height = 375
Ladrillo(nI).Width = 1095
Ladrillo(nI).Left = 360
Next nI

End Sub

al final siempre tendras nLadrillos+1 por que le subindice 0 tambien cuenta

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear array de controles en ejecucion

Publicado por Fernando (166 intervenciones) el 27/11/2002 15:46:38
Tenes razon pancho, no se me ocurrio usar la instrucción Load.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar