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.