CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Arreglo De Objetos
(1/1)
juanlalo:
Hola amigos, soy nuevo en el ambiente de Visual Basic .net, he tratado de resolver este dilema que tengo pero no he encontrado respuesta, ojalá me la puedan resolver.
Cuando tengo una clase con sus atributos, propiedades, metodos y su constructor, como puedo hacer para instanciar un objeto de esa clase pero como arreglo redimiensionable: Ejemplo:
La clase se llama "Punto" y mostrando lo escencial seria de la siguiente manera:
--- Código: Text ---Public Class Punto Private X as integer Private Y As Integer Public Property PosX() As Integer Get Return X End Get Set(ByVal Value As Integer) X = Value End Set End Property Public Property PosX() As Integer Get Return X End Get Set(ByVal Value As Integer) X = Value End Set End Property Public Sub New() X = 0 Y = 0 End SubEnd Class
Ahora, si deseo capturar las coordenadas en donde la persona hace click sobre un formulario y guardarlas en un arreglo de la clase Punto, osea, un arreglo de objetos de la clase Punto el cual se va redimensionando por mas clicks que se hagan en el formulario, al inicializar el objeto como arreglo lo tendria q hacer de la siguiente manera:
--- Código: Text ---Dim objPunto() As Punto = New Punto
La inicialización o instanciación de la clase no es aceptada por el compilador (Visual Studio .NET 2003), no entiendo como especificarla ya que cada vez que la necesito (en el evento "MouseDown" del Formulario "Form1") la redimensiono de la siguiente forma.
--- Código: Text ---Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PBDibujo.MouseDown ' NumClicksEnForm guarda la cantidad de Clicks que se hicieron en el formulario Dim NumClicksEnForm As Integer NumClicksEnForm = NumClicksEnForm + 1 ReDim objPunto(NumClicksEnForm) objPunto(NumClicksEnForm).PosX=e.X objPunto(NumClicksEnForm).PosY=e.Y End Sub
¿Como se puede solucionar el tema de crear un arreglo de objetos redimensionable?
Desde ya muchas gracias.
ing_marco:
Rapidamente:
la declaracion deberia ser de esta forma:
--- Código: Text ---Dim objPunto() As Punto = New Punto(0){} luego para agregar
Primero deberias crear una variable como instancia del punto, agregarle todas sus propiedades y recien asignarlo al Array
--- Código: Text ---dim Pto as new Punto=new Punto()Pto.PosX=e.XPto.PosY=e.Y y luego hacer la redimension
--- Código: Text ---Redim objPunto(1)
claro que no usariamos
--- Código: Text ---1 en lugar deberias redimensionar con la longitud del arrar + 1.
Como??
SP.Length+1
--- Código: Text ---Redim objPunto(objPunto.Length+1) Asegurate de ver si es
--- Código: Text ---Redim objPunto(objPunto.Length+1) o simplemente
--- Código: Text ---Redim objPunto(objPunto.Length) bueno prueba y listo.
Salu2.
Navegación
Ir a la versión completa