Foros del Web » Programación para mayores de 30 ;) » .NET »

arreglo bidimencional

Estas en el tema de arreglo bidimencional en el foro de .NET en Foros del Web. hello, mens oigan llevo un tiempito realizando un arreglo bidimencional y todo ok lo declaro todo funciona ok pero lo declaro de manera tal que ...
  #1 (permalink)  
Antiguo 07/06/2007, 14:28
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
arreglo bidimencional

hello, mens oigan llevo un tiempito realizando un arreglo bidimencional y todo ok lo declaro todo funciona ok pero lo declaro de manera tal que solo puedo acceder a el dentro de la funcion en la cual lo genero, este es un arreglo de botones es para simular las posisciones dentro de un bus pero lo que pasa es lo siguiente: ahora quiero asignarle diferentes eventos a los botones creados pero como mi arreglo fue declarado e inicializado en la funcion en la cual lo creo no puedo ir asignado eventos ni ocuparlo fuera de esta funcion, yo lo quiero ocupar dentro del formulario para poder asignar eventos a algunas posiciones y eventos en comun para todos los botones pero no puedo, ya e intentado tratar de declaralo fuera de la funcion péro no me funciona nada aca les dejo el codigo para que le hechen un vistazo: y si me pueden ayudar, pucha aun mejor ya que hasta las sugerencias pueden dislumbrar un poco mis dudas, de todas formas lo que deseo es poder declararlo de manera publica para poder acceder a el desde cualquier parte del form

ahora el codigo:

Public Class Form3
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub GenerarLC(ByVal ta As Integer)
Dim buses(4, 20) As Button
Dim i, j, lc As Integer
Dim posx, posy As Integer
Dim espacio As Integer = 55 '//espacio entre los botones en las filas
Dim alto As Integer = 30 '// espacio enter los botones en las columnas
lc = ((ta / 2) + 3) \ 2
For i = 3 To 4
For j = 1 To lc
buses(i, j) = New Button
posx = j * espacio
posy = i * alto + 80
buses(i, j).Location = New System.Drawing.Point(posx, posy)
buses(i, j).Size = New System.Drawing.Size(42, 27)
buses(i, j).Image = Global.WindowsApplication1.My.Resources.Resources. Poltrona
Me.Controls.Add(buses(i, j))
Next j
Next i
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Ta As Integer
Dim baño As String
Ta = CInt(TextBox1.Text)
GenerarLC(Ta)
'********************************
baño = TextBox2.Text
GeneraLB(Ta, baño)
End Sub
End Class
  #2 (permalink)  
Antiguo 07/06/2007, 17:27
 
Fecha de Ingreso: octubre-2005
Mensajes: 180
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: arreglo bidimencional

Si lo que quieres es declarar el array en forma publica puedes hacerlo desde un modulo; es decir agregas un modulo a tu proyecto y ahi con que le pongas lo siguiente ya esta....

Module Elnombredemimodulo

'esta es la declaración
Public miarray(5,4) As mitipodedatos´
'Puedo declarar mis funciones aqui mismo
End Module

De hecho yo te aconsejaría que dentro de ese mismo modulo crearas la función.... Eso lo hago para que mi código quede mas ordenado.... Es cosa de gustos....

Suerte....

Bitss...Miguel--in----
  #3 (permalink)  
Antiguo 08/06/2007, 08:32
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
Re: arreglo bidimencional

Ya, ok buen aporte pero te falto algo men si apenas pude declararlo de manera local, como lo llamo, o lo utilizo una ves declarado dentro de un modulo, con la clase "my" o con que , otra duda pero no es posible declararlo de manera publica dentro del form antes del load no se sigo con dudas, gracias de todas formas por tu aporte, de veras grax pero si no fuera mucho pedir como lo invoco desde mi form????
  #4 (permalink)  
Antiguo 08/06/2007, 09:07
 
Fecha de Ingreso: octubre-2005
Mensajes: 180
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: arreglo bidimencional

Hola nuevamente!!!

Para declarar un modulo abres el explorador de soluciones, das clic derecho sobre el nombre de el proyecto, ahi seleccionas agregar y luego elieges modulo, pones el nombre a tu modulo y listo ya tienes tu modulo... Posteriormente abres el modulo creado y pegas el codigo que te pase es decir esto:

Module elnombrequelepusiste

'esta es la declaración
Public miarray(5,4) As Button

End module

y para invocarlo en cualquier parte del formulario por ejemplo para recuperar la longitud en filas le pones

Dim largo As Int16 = miarray.Length

y con que pongas el nombre (es decir miarraY) ya te lo reconoce en cualquier parte de tu codigo; ahi nada mas especificas que quieres hacer con el array y en que posiciones quieres hacer esa accion....

Creo que con esto ya lo puedes usar....

Bitss---Miguel---in---
  #5 (permalink)  
Antiguo 11/06/2007, 13:00
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
Re: arreglo bidimencional

gracias miguelillo me ha resultado ok, pero hice caso a tu opinion y guarde en este modulo un (private sub) que posteriormente enumera los asientos de mi bus pero mi consulta es ahora cmo la invoco desde mi formulario???? ya que no es solo con el nombre como seria normalmente.....?????
  #6 (permalink)  
Antiguo 11/06/2007, 15:09
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
Re: arreglo bidimencional

sorry...... era tan sencillo como declarar public mi sub y ya esta ..... lo llamo desde donde quiera me autorrespondo para no ocupar espacio de memoria... jajajajajajaja
adios....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:33.