Bucles

Iniciado por Stakewinner00, 17 Enero 2013, 16:39 PM

0 Miembros y 1 Visitante están viendo este tema.

Stakewinner00

Hola, tengo una duda que no pude resolver, busque por google  y nada.

Lo que me pasa es que quiero analizar por ejemplo 20 rectangulos y todos tienen un nombre tipo RectangleShape1 y lo que necesito es hacer un bucle que modifique el 1 hasta el 20 algo como este bucle que no me funciono.

La idea es hacer que veinte rectangulos o más se muevan de forma aleatorio y por eso necesito el bucle

Código (vbnet) [Seleccionar]
       For a As Integer = 1 To 4
           Dim aa = "RectangleShape" + a
           aa.left += 1
            RectangleShape+a+.Left += Aleatorio(1, -1)
           ' RectangleShape2.Left += Aleatorio(1, -1)

       Next a


Gracias!!

$Edu$

Ni siquiera con tu intento fallido de hacer eso lo haz hecho bien xD
Lee un buen tutorial de Visual Basic, pero leerlo y aprenderlo bien, no leer a la ligera...

Asumiendo que me haras caso y leeras un buen tutorial, te digo que le prestes atencion bien a la parte de Matrices o Arrays de Controles

Stakewinner00

Cita de: $Edu$ en 17 Enero 2013, 17:11 PM
Ni siquiera con tu intento fallido de hacer eso lo haz hecho bien xD
Lee un buen tutorial de Visual Basic, pero leerlo y aprenderlo bien, no leer a la ligera...

Asumiendo que me haras caso y leeras un buen tutorial, te digo que le prestes atencion bien a la parte de Matrices o Arrays de Controles

Me lei un libro de visual basic. Y me sirvio para comenzar.

No recuerdo si allí había algo sobre esto, lo voi a repasar pero creo que no había nada sobre esto

$Edu$

Busca sobre "el guille" que tiene un buen tutorial bastante completo.

Stakewinner00

Alguien me puede dar una pista? Por uqe ya busque pero no sale como poder haacer algo similar a esto.

CitarFor i = 1 To 3
            var = "RectangleShape" & i
        Next i
MSGBOX (var.location.y)

$Edu$

Ya te dije que hacer y luego que buscar...

No podes hacer eso que queres hacer, si tenes un TextBox1 no podes ir aumentando la parte del numero. Lo que tenes que hacer es crear un array de controles cosa que quede TextBox(0) el primero que creas y luego el segundo TextBox(1), etc, asi ahi si haces TextBox(i) en el bucle.

raul338

1º Eso es .net, ahora lo muevo al foro de .net
2º En .net no se pueden crear array de controles, puedes hacer que varios controles apunten a un msimo evento (identificalos por el sender), o puedes recorrer la propiedad  "Controls" del contenedor (te recomiendo meter todos esos "rectangulos" en un panel)

Recorrelos usando For Each

$Edu$

Hola Raul tanto tiempo! me confundi porque como estaba en visual basic pensaba que era vb6 ademas de que no preste mucha atencion a su codigo porque a simple vista ya estaba mal, debi ver esa declaracion mas cuidadosamente xD

Eleкtro

Código (vbnet) [Seleccionar]
Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       Me.Size = New Point(600, 600)
       Dim Rando As New Random

       ' Creo los controles y los añado al form, para este ejemplo.
       Dim Button_(10) As Button
       For num = 0 To 10 : Button_(num) = New Button : Me.Controls.Add(Button_(num)) : Next

       For Each Control In Me.Controls
           If Control.GetType.ToString.Contains("Button") Then ' Si el control es de tipo Button...
               Control.location = New Point(Rando.Next(1, 500), Rando.Next(1, 500)) ' Los coloco aleatóriamente
           End If
       Next
   End Sub

End Class








Stakewinner00

Gracias a todos, ya lo arregle de una forma similar a la de EleKtro H@cker.

PD:Eso estaba seguro que si que era visual basic 2008, como minimo cuando recupere windows me descargue Microsoft visual basic 2008. Si no es visual basic tendré que repasar las bases.