Creación de un Componente ActiveX – Parte I

Anuncio
Creación de un Componente ActiveX – Parte I
Introducción
Muchas veces se nos presenta el siguiente problema: estamos diseñando un programa
que será único en su tipo y cuando estamos por escribir alguna función o hacer mas
bella su interfaz nos encontramos con que tenemos que escribir páginas de código para
hacer un botón circular o realizar alguna función que Visual Basic no posee, o alguna
propiedad que no existe dentro de los controles normales de VB.
Por ejemplo, no existe una propiedad llamada “Forma” en los botones de comando, por
lo que siempre es cuadrado.
Entonces, ¿Por qué no crear mis propios controles con las propiedades, métodos,
eventos y funciones que yo desee?.
Pues Visual Basic tiene esta opción para aquellos programadores que desean realizar sus
propios componentes.
Empecemos a Crear!
Arranque Visual Basic y en la pantalla de Nuevo Proyecto, elegir “Control ActiveX” y
presionar “Abrir”.
Al hacerlo, se debe ver una pantalla similar a la siguiente:
El espacio de color beige en la ventana es donde debemos diseñar nuestro control.
Diseñando el Control
En este ejemplo vamos a diseñar un pequeño “botón de comando” semi-rectangular, en
el cual vamos a añadir un evento creado por nosotros y algunas propiedades únicas del
control.
Vamos a seleccionar la herramienta “Shape” del cuadro de herramientas y a dibujar dos
rectángulos con bordes redondeados, del tamaño que nosotros queramos, uno encima
del otro:
Por el momento vamos a darle a estas figura un color de fondo, que será el
predeterminado. Yo, en mi caso, lo puse amarillo. Al Shape2 debes hacerlo invisible.
Entre las propiedades del UserControl debes poner a 0 la propiedad BackStyle y le darás
el nombre de MiBoton.
Por ahora, no debes preocuparte por todo el espacio sobrante dentro del control, ya que
pronto lo arreglaremos. Por ahora, sólo estamos dando interfaz al control.
Ahora, por fin, puedes abrir la ventana de código de tu control.
Primero vamos a definir las propiedades de este control. Para definir una propiedad, se
la hace dos veces por cada propiedad. Es decir, la primera declara el nombre, los
argumentos y el código que componen el cuerpo de un procedimiento Property, el cual
obtiene el valor de una propiedad (se la conoce como Property Get), y la segunda vez
declara el nombre, los argumentos y el código que forman el cuerpo de un
procedimiento Property, el cual asigna un valor a una propiedad (conocida como
Property Let).
En la ventana de Código debes escribir:
Public Property Get PrimerColor() As OLE_COLOR
PrimerColor = Shape1.BackColor
End Property
Public Property Let PrimerColor(ByVal PrimCol As OLE_COLOR)
Shape1.BackColor = PrimCol
PropertyChanged "PrimerColor"
End Property
Public Property Get SegundoColor() As OLE_COLOR
SegundoColor = Shape2.BackColor
End Property
Public Property Let SegundoColor(ByVal SegCol As OLE_COLOR)
Shape2.BackColor = SegCol
PropertyChanged "SegundoColor"
End Property
Si lo lees atentamente, te darás cuenta que tenemos 2 propiedades: PrimerColor y
SegundoColor.
La instrucción “PropertyChanged” le dice al sistema que se ha cambiado una propiedad.
Más tarde veremos cómo afecta esto al desempeño de las propiedades.
Ambas propiedades están definidas como OLE_COLOR. Esto es así porque éstas
servirán para asignar colores al control, por lo que contendrán una variable del tipo
color.
Ahora vamos a decirle que el botón tome el tamaño que le damos al insertarlo en un
formulario. Para esto debemos llamar al evento Resize del UserControl:
Private Sub UserControl_Resize()
Shape1.Width = UserControl.Width
Shape1.Height = UserControl.Height
Shape2.Width = UserControl.Width
Shape2.Height = UserControl.Height
End Sub
Hemos llegado al fin de esta primer entrega. Para continuar creando, te invito a que
sigas leyendo la parte II.
Descargar