Coleccion generica de objetos (Collection)


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 😀

Saludos a todos.

>Descargar Fuente<

Anuncios

Etiquetas: , , , , , , ,

About exequielc

Hola! Estás en el blog de Exequiel Catalani. Como es un blog, se trata de una extensión más o menos lineal de las cosas que hago y pasan por mi cabeza: ciberculturas, videos de la red, nuevos medios y tecnologia, y Programacion etc...

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

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: