Visual basic permite construir tambien colecciones genericas de objetos que podemos utiliza, por ejemplo, para seguir la pista de los objetos que creemos de una determinada clase, Para ello proporciona la clase generica Collection.

A diferencia de una matriz de objetos, una coleccion:

  • Utiliza menos memoria que una matriz.
  • Proporciona un acceso mas flexible a los miembros.
  • Proporciona metodos para añadir y borrar miembros.
  • Ajusta su tamalo automaticamente despues de añadir o borrar miembros.

Por ejemplo, el siguiente procedimiento crea una coleccion de objetos y almacena en ella los controles del formulario Form1, Para acceder a los controles de Form1 se utiliza la sentencia For Each…Next

'Declaracion a nivel del formulario
Public coleccion As New Collection   Private Sub Command1_Click()

 Dim Control As Control

 For Each Control In Form1.Controls

 	'Añadir el control a mi coleccion

		coleccion.Add Control

 Next Control

End Sub 

Una coleccion generica de objetos tiene las siguientes propiedades

  • Count > proporciona el numero de miembros de la coleccion
  • Add > premite añadir un miembro a la coleccion
  • Remove > permite eliminar un miembro de la coleccion
  • Item > que permite acceder a los miembros de la coleccion

El siguiente ejemplo nos permite aprender mas sobre las colecciones de objetos, en este caso trabajaremos con formularios, cómo se puede usar el método Add de un objeto de colección para mantener una lista de ventanas secundarias MDI creadas por el usuario. En este código se supone que existe un formulario llamado form1, cuya propiedad MDIChild es True y por supuesto un formulario principal que en este caso llamaremos Colecciones.

Esta aplicacion tendra la siguiente apariencia.

collection-1.jpg

y esta es una imagen de la aplicacion funcionando

collection.jpg

En primera instancia declaramos colDocuments como nueva coleccon y un contador para almacenar la cantidad de elementos de nuestra coleccion.

Option Explicit

' Colección de nivel de módulo en el MDIForm primario.

Public colDocuments As New Collection

Dim cont As Integer

Por medio de este procedimiento llamaremos al nuevo form1 y lo almacenaremos en nuestra coleccion.

 ' Código para crear un nuevo formulario secundario MDI.

Private Sub mnuFileNew()

   Dim f As New Form1

   Static intDocumentNumber As Integer

   intDocumentNumber = intDocumentNumber + 1

   ' La línea siguiente crea el formulario.

   f.Caption = "Documento" & intDocumentNumber

   ' Agrega la referencia de objeto a la colección.

   colDocuments.Add f

   f.Show

End Sub

y finalmente utilizamos un evento comun como Click para llamar a nuestro procedimiento

Private Sub Command1_Click() 'abrir form

    mnuFileNew

   Label2.Caption = colDocuments.Count

End Sub 

La aplicacion ademas permite cambiar el color a determinado form1 dentro de nuestra coleccion,borrarlo y eliminarlo de nuestro array, y eliminar todos los elementos usando la propiedad Remove, presten atencion a este metodo.

Bueno como siempre dejo el script completo para el que quiera descargarlo, espero que se entienda cualquier cosa pregunten :D

Saludos a todos.

>Descargar Fuente<

One Response to “Coleccion generica de objetos (Collection)”

  1. chio Says:

    hola me inetersa muchos todo los q’ programas me gustaria saber de la propiedad ListIndex
    gracias


Leave a Reply