jueves, 17 de octubre de 2013

Componentes en .NET: (2ª Parte) Añadir componentes a la barra de herramientas


Mostrando composición y agregación en UML


En la 1ª Parte aprendimos el rombo sólido en el diagrama UML indica una relación llamada composición en la terminología orientada a objetos. Composición significa que un objeto no puede existir sin otro objeto. Como ejemplo, un coche sin motor no es realmente un coche. Si el motor deja de funcionar, el coche deja de funcionar o necesita por lo menos para obtener un nuevo motor para poner el coche en marcha.

Este diagrama presenta un nuevo elemento de UML, el rombo abierto. El rombo abierto
indica una relación llamada agregación. La agregación implica que un objeto puede utilizar otro objeto, pero se pueden crear sin él: un coche puede tener un conductor, pero sin un conductor sigue siendo un coche.

No necesariamente se debe estar de acuerdo con la asignación de rombos abiertos y cerrados en un diagrama. Los diseñadores a menudo no están de acuerdo sobre las diferencias entre la composición y agregación.


Como cambiar el Namespace


En .NET, las clases se encuentran en espacios de nombres. Un espacio de nombres define el ámbito de una clase. Los proyectos en este blog hasta ahora han tenido un espacio de nombres, que es idéntico al nombre del proyecto, pero esto puede cambiar. En  .NET, los espacios de nombres se nombran de una manera particular, por convención: Compañía.Tecnologia. En esta biblioteca, la compañía NISIA Co.ltd ha creado varias de clases para manejar una empresa. Así, las clases estarán contenidas en el espacio de nombres  NISIA.EmpresaGenerica.


Cambio del namespace



1. En el Explorador de soluciones, hacer clic en el proyecto y hacer clic en EmpresaGenerica Propiedades en el menú contextual. Se abrirán las páginas de propiedades. Tener en cuenta que el ajuste del tipo de salida es una biblioteca de clases. La salida de este proyecto será un archivo. dll. Se pueden utilizar los objetos definidos en un archivo de biblioteca de clases, pero no se puede ejecutar un archivo. dll. 

componentes en .NET

2. Escribir las siguientes líneas Namespace para agrupar las clases generadas.

Namespace EmpresaGenerica
    Public Class CCliente

    End Class
End Namespace

Las clases posteriores añadidas al proyecto se agregarán a este espacio de nombres.



Agregar una clase al espacio de nombres .NET

Al compilar se crea InterfazClases.dll

Abrimos otro proyecto y agregamos la dll

Añadir una referencia .NET

Agregar una referencia .NET

Agregar una referencia .NET

Grabamos y debe aparecer en la pestaña Recent

Agregar una referencia .NET

Ahora en el Código de nuestro proyecto debo tener acceso a las clases de mi dll agregada.

Clases en .NET

métodos de una clase de .NET


Para manejar la clase de la dll basta con  instanciar el objeto y usarlo como si fuera de nuestro programa.

Dim miCliente As NISIA.ClasesGenericas.EmpresaGenerica.CCliente = New NISIA.ClasesGenericas.EmpresaGenerica.CCliente

        If miCliente.Baja = False Then
            MsgBox("Se produjo un error al dar de baja el cliente")
        End If

Añadir un componente a la barra de herramientas


También se pueden crear componentes que sean controles para añadir en la caja de herramientas, este tipo de componentes están más extendidos y hay muchas empresas comerciales que los distribuyen. Podemos consultar algunos componentes ya creados en:



Se pueden utilizar de forma simple arrastrando desde la caja de herramientas a un formulario.
Cuando un desarrollador coloca un control cliente o un componente en el diseñador de formularios, le gustaría tener las propiedades del control y tener un texto de ayuda en la ventana Propiedades, además desea que el control tenga su propio icono en la Caja de Herramientas. En este documento, vamos a  escribir un control diseñado con clases y pensando en otros desarrolladores que posteriormente puedan utilizar estos  controles.
Abrimos un nuevo proyecto como Windows Control Library


nuevo proyecto como Windows Control Library

Creando el Control Peón



El control Peón hereda de la clase UserControl. En este proyecto, se podrían heredar las propiedades de un botón pero obtendremos un mejor resultado al heredar de la clase UserControl ya que el control Button tiene varias propiedades que no se desea que el usuario tenga acceso a ellas, como texto e imagen.
Para controlar las propiedades de forma que reflejen la demanda del usuario, se pueden añadir nuevas cadenas de ayuda para las propiedades, una ventana de propiedad con la categoría de las propiedades, o un icono de cuadro de herramientas. También se puede utilizar otra  imagen para actualizar dinámicamente mediante eventos  la apariencia del control

Añadir una referencia al control Peón  desde el Programa Ajedrez


Una vez creado el control peón, podremos añadir dicho control al proyecto ajedrez, para ello lo añadiremos en las referencias del proyecto. Pero antes hay que poner el proyecto peón en modo Release y ejecutar para que cree una .dll llamada Peon.dll, hecho esto abrimos el proyecto ajedrez y añadimos la referencia igual que en el punto anterior.
Cuando se agrega el control peón a la caja de herramientas, sólo se tiene que agregar un control arrastrándolo a un formulario. Seguir estos pasos para agregar el control al cuadro de herramientas:


1. Hacer doble clic en Form1 del proyecto de ajedrez en el Explorador de soluciones.
2. Hacer clic en la caja de herramientas y hacer click en Agregar ficha en el menú contextual. A
la nueva pestaña en la parte inferior de la caja de herramientas.

 agregar un control al cuadro de herramientas .NET

3. Escribir el nombre de la nueva pestaña y pulsar Intro.

Controles de usuario .NET

4. Hacer click en la pestaña Controles de Usuario Choose Items…

Controles de usuario .NET

Buscar la .dll llamada peon.dll en el equipo pulsando el botón Browse de la caja de diálogo

Controles de usuario .NET

Añadir controles de usuario .NET

Agregar controles de usuario .NET

Ahora ya se puede coger el control y arrastrarlo al formulario, y cambiarlo el nombre a Peon.

Control de usuario en la barra de herramientas de .NET

Control de usuario en la barra de herramientas de .NET

Con el botón derecho podemos sacar las propiedades

Propiedades del control de usuario de la barra de herramientas de .NET

Propiedades del control de usuario de la barra de herramientas de .NET

 Tener en cuenta que la propiedad de texto no está en las ventanas de propiedades.

Cómo crear el componente Tablero

Vamos a generar el tablero de ajedrez como un componente, lo que significa que seremos capaces de añadir un icono del componente tablero al cuadro de herramientas. Al arrastrar el componente de la caja de herramientas al formulario, se coloca una instancia de él en el formulario.
 Al crear  un componente tablero, se pueden utilizar el entorno de las herramientas gráficas de Visual Studio. Net Design para establecer las propiedades del componente.
El usuario puede utilizar un editor similar al editor de la colección para el control ListBox para elegir el los valores en tiempo de diseño.

Añadir un control tablero al programa ajedrez como  componente

1. Sobre el explorador de soluciones, pulsamos el botón derecho del ratón y elegimos add y elegimos Component

Añadir un control tablero al programa ajedrez como  componente

2. Aparece la caja de diálogo donde escribimos Tablero.vb y pulsamos Add.

Agregar un control como componente .NET

3. Aparece en el explorador de soluciones Tablero.vb

Añadir un control como componente .NET

Aparece esta pantalla que nos permite arrastrar controles de la caja de herramientas sobre nuestro componente, o escribir código directamente.

Añadir un control como componente .NET



El componente a su vez contiene un componente de campo, de modo que el
componente puede alojar otros componentes:

Public Class Tablero

    Private Componente As System.ComponentModel.Container

End Class

Definir el icono  de la caja de herramientas para el componente


Para definir un icono para el component tablero, añadimos un bitmap de 16 x 16 al proyecto.

1. Crear un bitmap de 16 x 16 pixels, llamarlo Tablero.bmp y guardarlo en el directorio del proyecto

2. En el Explorador de soluciones pulsar el botón derecho, elegir  Add, clicar en  Add Existing Item y elegir el icono creado.

Asociar un icono a un control .NET creado por el usuario

3. En la ventana de propiedades del bitmap  en la propiedad  Build Action elegir Embedded Resource. Esto añadirá el bitmap al archivo de ensamblado.

No hay comentarios:

Publicar un comentario