• Lunes 23 de Diciembre de 2024, 08:47

Autor Tema:  Arreglo De Objetos  (Leído 1519 veces)

juanlalo

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Arreglo De Objetos
« en: Miércoles 24 de Octubre de 2007, 10:10 »
0
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
  1. Public Class Punto
  2.  
  3.    Private X as integer
  4.    Private Y As Integer
  5.  
  6.    Public Property PosX() As Integer
  7.       Get
  8.          Return X
  9.       End Get
  10.       Set(ByVal Value As Integer)
  11.          X = Value
  12.       End Set
  13.    End Property
  14.  
  15.    Public Property PosX() As Integer
  16.       Get
  17.          Return X
  18.       End Get
  19.       Set(ByVal Value As Integer)
  20.          X = Value
  21.       End Set
  22.    End Property
  23.  
  24.    Public Sub New()
  25.       X = 0
  26.       Y = 0
  27.    End Sub
  28. End Class
  29.  

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
  1. Dim objPunto() As Punto = New Punto
  2.  

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
  1. Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PBDibujo.MouseDown
  2.  
  3.    ' NumClicksEnForm guarda la cantidad de Clicks que se hicieron en el formulario
  4.    Dim NumClicksEnForm As Integer
  5.    NumClicksEnForm = NumClicksEnForm + 1
  6.    ReDim objPunto(NumClicksEnForm)
  7.    objPunto(NumClicksEnForm).PosX=e.X
  8.    objPunto(NumClicksEnForm).PosY=e.Y
  9.  
  10. End Sub
  11.  

¿Como se puede solucionar el tema de crear un arreglo de objetos redimensionable?

Desde ya muchas gracias.

ing_marco

  • Miembro MUY activo
  • ***
  • Mensajes: 263
    • Ver Perfil
Re: Arreglo De Objetos
« Respuesta #1 en: Jueves 25 de Octubre de 2007, 15:37 »
0
Rapidamente:
la declaracion deberia ser de esta forma:
Código: Text
  1. Dim objPunto() As Punto = New Punto(0){}
  2.  
luego para agregar
Primero deberias crear una variable como instancia del punto, agregarle todas sus propiedades y recien asignarlo al Array
Código: Text
  1. dim Pto as new Punto=new Punto()
  2. Pto.PosX=e.X
  3. Pto.PosY=e.Y
  4.  
y luego hacer la redimension
Código: Text
  1. Redim objPunto(1)
  2.  

claro que no usariamos
Código: Text
  1. 1
  2.  
en lugar deberias redimensionar con la longitud del arrar + 1.
Como??
SP.Length+1
Código: Text
  1. Redim objPunto(objPunto.Length+1)
  2.  
Asegurate de ver si es
Código: Text
  1. Redim objPunto(objPunto.Length+1)
  2.  
o simplemente
Código: Text
  1. Redim objPunto(objPunto.Length)
  2.  
bueno prueba y listo.
Salu2.
MARCO DIAZ
Ing_Marco
Bachiller Ing de Sistemas.
UNT
Trujillo-Peru