Coleccion generica de objetos (Collection)
Septiembre 30, 2007
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.
y esta es una imagen de la aplicacion funcionando
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.


Abril 29, 2008 at 2:57 am
hola me inetersa muchos todo los q’ programas me gustaria saber de la propiedad ListIndex
gracias