Curso sobre Visual Basic
por Jorge Serrano (Mundo Visual)

 

Tema Dos ( 9/Ago/97)

Baja el archivo en formato Word (tema2.zip 12.7 KB)


 

Controles Ocx o ActiveX de Visual Basic

 

Los controles personalizados o controles ActiveX también denominados Ocx, son unas librerías especiales desarrolladas para facilitarnos "algunas" líneas de código que por su extensión o complejidad, hemos desarrollado con otro lenguaje o con el mismo Visual Basic (Visual Basic 5.0 CCE).

 

En Visual Basic 3.0 o anteriores, el único control que podía ser utilizado, era el control Vbx. Este tipo de controles son de 16 bits.

Con la llegada de Visual Basic 4.0 y de los 32 bits, los controles a usar en este lenguaje de programación son los controles Ocx de 32 bits.

 

Estos controles pueden ser desarrollados con otros lenguajes de programación o con el reciente programa de Microsoft Visual Basic 5.0 CCE.

Entre algunos lenguajes capaces de desarrollar controles Ocx, nos encontramos con Visual C++ 4.0 o superior, Borland C++ 5.0, y Delphi. Es muy posible que me deje a algún lenguaje por ahí, pero estos son los más utilizados.

 

Podemos encontrar controles Ocx en el mundo de muy diversos tipos.

Los controles Freeware o gratuitos, los shareware o de prueba antes de pagar, los cardware … etc.

Estos controles pueden ser encontrados además en BBS o en la distribución de nuestra aplicación.

Si nuestra aplicación utiliza controles personalizados, estos deben distribuirse junto a nuestra aplicación, por tanto, a la hora de instalarla, se encontrarán en nuestro disco duro.

 

Los controles Ocx son los objetos que en nuestro formulario colocaremos. Por ejemplo, un botón, una caja de texto, una barra de estado, … etc.

Para insertar un nuevo control en la caja de herramientas (que ya vimos en el tema 1), deberemos seleccionar el menú : Herramientas -> Controles personalizados o pulsar la tecla Ctrl+T.

Se nos presentará una ventana donde podremos seleccionar los controles que deseemos añadir o eliminar de nuestra caja de herramientas. Los controles están situados generalmente (y es bueno que así sea) en el directorio System de Windows, por ejemplo en : C:\Windows\System.

 

Es posible que a la hora de añadir un determinado control Ocx en nuestra caja de herramientas, este no sea aceptado produciéndose un error. Esta es una de las cualidades de los controles Ocx. Deben ser registrados. Algunos se registran directamente sin que nosotros lo percibamos, sin embargo, hay controles que debemos registrarlos nosotros mismos para poder utilizarlos. Este registro se produce ejecutando el programa "Regvsr32.exe". La sentencia correcta es "Regsvr32 nombre.ocx". Si todo ha ido perfectamente, un mensaje aparecerá en una pequeña ventana informándonos de la correcta instalación del control en la página de registros de Windows. Ahora deberemos volver a repetir los pasos a seguir para añadir el control Ocx en nuestra caja de herramientas como hemos visto con anterioridad.

El control quedará añadido ahora en nuestra caja de herramientas.

 

 

Controles Label, TextBox, CommandButton, PictureBox profesionales de Visual Basic 4.0

 

Ahora veremos los controles más utilizados que vienen con el programa Visual Basic 4.0 Profesional y como usarlos.

 

Label :

Este control es uno de los más utilizados en los proyectos Visual Basic. Apenas hay algún proyecto que no utilice alguna etiqueta o label.

Su uso reside en la aclaración o explicación de algunas partes de la ventana de nuestro proyecto.

Sus propiedades más importantes son :

Alignment es usada para alinear el texto de la etiqueta a la izquierda, derecha o centrado.

Appearance utilizado para dar un efecto 3D o no a la etiqueta. Si elegimos el valor 1, le damos este efecto 3D, si le damos el valor 0, queda sin efecto 3D. Por defecto tiene el valor 1.

Backcolor selecciona el color de fondo de la etiqueta.

BackStyle tiene dos posibles valores. 0 - Transparent y 1 - Opaque. Si elegimos 0, el fondo de color de la etiqueta será ignorado, si elegimos 1, adoptará el color que nosotros habíamos seleccionado.

BorderStyle es utilizado para asignarle un borde de la etiqueta. Si la propiedad Appearance está con valor 1, la etiqueta adopta una forma en relieve muy vistosa.

Caption es el contenido de la etiqueta.

DataField y DataSource son utilizados con Bases de Datos.

Enabled es la propiedad que hace que el control esté habilitado o desabilitado. El valor True de este control, confirma el funcionamiento normal del control, mientras que el valor False deja el control desabilitado. Cuando un control está desabilitado adquiere un tono gris claro.

Font es usado para seleccionar el tamaño, propiedad y fuente del texto.

Forecolor es la propiedad del color de la fuente.

Height, Left, Top, y Width son utilizadas de la misma manera que para el formulario como ya hemos visto anteriormente.

MouseIcon y MousePointer son usadas para cambiar el puntero del ratón en tiempo de ejecución. Si cambiamos la propiedad MousePointer a otro valor, al acercar el ratón sobre la etiqueta el puntero del ratón cambiará.

Name es el nombre de la etiqueta. A veces queremos cambiar algún contenido o propiedad de este control u objeto, con lo que llamarlo de una determinada forma es importante para hacer referencia sobre él sin equivocarnos.

Visible esta propiedad es utilizada para hacer visible o no la etiqueta o label. En tiempo de diseño todas los controles u objetos serán visibles, siendo efectivas estas propiedad en tiempo de ejecución.

 

Nota : Debido a la similitud de muchas de las propiedades de los diferentes controles, desde ahora sólo haré hincapié en aquellas propiedades que sean diferentes a las ya vistas.

 

 

TextBox :

La caja de texto o TextBox, es junto al control Label o etiqueta uno de los controles que más podemos ver y utilizar en nuestros proyectos.

Se suele utilizar para que el usuario introduzca algún texto para que el programa lo trate y de una respuesta.

Locked es la posibilidad que tiene un TextBox de ser de sólo lectura o de lectura y escritura. Esto es utilizado para mostrar un texto que no deseamos que sea manipulado por el usuario. Para que sea de sólo lectura, debe tener la propiedad True.

MaxLength es la propiedad que nos permite seleccionar un tope de caracteres insertados en el TextBox, como por ejemplo 20 para el nombre de una persona. Si la dejamos a 0, el texto admitirá tantos caracteres como admita el control hasta que este se llene.

Multiline nos permite escribir en el TextBox una línea de texto una debajo de otra si la propiedad de este control está a True y una línea seguida si está a False.

PasswordChar nos permite escribir el texto encriptado con el carácter que nosotros le pongamos. Por ejemplo, si ponemos * (asterisco), cada letra que escribamos en el TextBox será vista como * (asteriscos). Esto es muy usado en password o palabras clave o secretas.

ScrollBars nos permite tener una barra de scroll para bajar, subir, adelantar o atrasar el texto que escribimos o que está escrito. Este control tiene 4 posibilidades. Sin scroll, con scroll horizontal, con scroll vertical, y con scroll horizontal y vertical.

 

 

CommandButton :

Default nos permitirá dejar el botón por defecto como accesible, de modo que al abrir una ventana que tiene un botón y al pulsar enter, se accionará el botón que esté por defecto o default.

 

 

Picture :

Align posee la característica y posibilidad de alinear una Picture a la parte superior del formulario, a la inferior o ajustar la picture al formulario.

AutoRedraw permite redibujar o refrescar el Picture. Esto es efectivo si se realizan modificaciones en la Picture y se desean visualizar.

 

 

Aún así, todo esto que hemos visto es muy teórico, por lo tanto vamos a ver el resto de controles (que poseen características muy similares o iguales a los ya vistos) practicando y aprendiendo que es la mejor forma de comprender todo. Aunque hemos visto estos 4 controles, el resto de controles no los veremos tan profundamente, con lo que a partir de ahora, prácticamente todo se basará en la práctica.

 

 

Uso de Label, TextBox, CommandButton y PictureBox

 

· Ejemplo 1; iniciación :

Para iniciarnos en el uso de los diferentes controles de Visual Basic 4.0, vamos a desarrollar un ejemplo que nos hará comprender el uso de los controles que hemos visto teóricamente, para más tarde irlo complicando a medida que avanzamos, con otros controles.

 

Abra un nuevo proyecto e inserte y escriba estas propiedades y controles:

Formulario;

Caption = Ejemplo 1

BorderStyle = 3

Height = 2100

Width = 2400

 

Dos TextBox con las propiedades;

Text1

Text = "" (nada)

Top = 100

Left = 100

Width = 2100

Height = 300

MaxLength = 20

Text2

Text = "" (nada)

Top = 600

Left = 100

PasswordChar = *

Width = 2100

Height = 300

Locked = True

MaxLength = 20

 

Un ButtonClick;

Caption = Aceptar

Height = 400

Width = 1200

Top = 1100

Left = 540

Enabled = False

 

Hacer doble click sobre el Text1 y escribir;

Private Sub Text1_Change()

If Text1.Text = "" Then

Command1.Enabled = False

Else

Command1.Enabled = True

End If

Text2.Text = Text1.Text

End Sub

 

Hacer doble click sobre el ButtonClick (botón) y escribir;

Private Sub Command1_Click()

MsgBox "Texto 1: " & Text1.Text & " y texto 2 " & Text2.Text

Unload Form1

End Sub

 

 

Este es un ejemplo de iniciación al Visual Basic y la utilización del control "Caja de texto" y del "Botón". Conforme vayamos avanzando en el curso, este tratará ejemplos sin tanto texto. Este primer ejemplo ha sido bastante descriptivo debido a que el lector debe ir cogiendo soltura de las propiedades y eventos de los diferentes controles.

 

 

Repaso de lo visto hasta ahora : Hemos visto los controles más habituales usados en Visual Basic. Hay muchos más controles que iremos profundizando según avancemos en el curso, pero de momento no quiero liar a nadie, y por tanto, el resto de controles los veremos con ejemplos prácticos.

Así mismo, hemos visto un ejemplo de iniciación del Visual Basic en el que se podía usar dos de los controles que hemos visto, el TextBox y el CommandButton. Hemos tratado de ver todas sus características, aunque no hemos podido ver todas las importantes como la Multiline o la ScrollBar.

A partir de ahora, los ejemplos que hagamos serán menos largos de explicación que el que hemos visto, por tanto, animo a todo aquel que se decida y no tenga miedo a errar, que pruebe a modificar valores o atributos del ejemplo que hemos realizado, a buen seguro que merecerá la pena.

 

 

· Ejemplo 2 de Label, TextBox, CommandButton y PictureBox :

Abra un nuevo proyecto y pegue una Picture Box, un TextBox, una Label por encima del TextBox y dos Botones (CommandButton).

En la propiedad Caption del formulario debe escribir Ejemplo 2.

En la propiedad Caption de la etiqueta escriba : "Nombre :"

La propiedad Text de la caja de texto déjela en blanco, y escriba en MaxLenght 10.

La PictureBox sitúela por debajo de la caja de texto y de un tamaño aproximadamente del doble de la caja de texto.

Los dos botones alinéelos uno al lado del otro y por debajo de la Picture.

Para el primer botón, escriba en la Caption "&Aceptar" y "&Salir" para el otro botón.

Ponga la propiedad Default del primer botón a True.

Haga doble click sobre el primer botón y escriba :

Private Sub Command1_Click()

Picture1.Cls

Picture1.Print Text1.Text

End Sub

Haga doble click sobre el segundo botón y escriba :

Private Sub Command2_Click()

Unload Form1

End Sub

Corra la aplicación en modo de diseño pulsando la tecla F5 y pulse el botón Aceptar. El texto de la caja de texto será "imprimido" en la PictureBox.

Haga lo mismo pero añadiendo el carácter ' delante de la línea Picture1.Cls, notará que la línea ha cambiado de color. El carácter ' indica que lo que hay en esa línea es un comentario. Es decir, Picture1.Cls lo hemos dejado como comentario, con lo que Visual Basic no lo ejecutará. No se asuste, esto es para demostrar otra propiedad del PictureBox. Pulse nuevamente F5 y haga lo mismo. Pulse el botón Aceptar tantas veces como quiera.

En el primer ejemplo hemos observado que el texto imprimido en la PictureBox ha sido eliminado o borrado y puesto el nuevo. Esto se consigue con el parámetro Cls.

En el segundo ejemplo, los caracteres no son borrados, sino que se van añadiendo al PictureBox.

Si desea ver otra fuente de letra o color de letra en un PictureBox, deberá modificar las propiedades ForeColor y Font.

 

 

· Ejemplo 3 de Multiline con un TextBox :

Abra un nuevo proyecto y pegue un TextBox y un Botón (CommandButton).

En la propiedad Caption del formulario debe escribir Ejemplo 3.

El botón tendrá la misma propiedad que el botón 2 del ejemplo 2 (el de Salir).

El TextBox tiene las siguientes propiedades ;

Multiline = True.

Text = "" (nada).

ScrollBars = Vertical.

Escriba tanto texto como quiera. Observará que al llegar al final de la línea, continúa saltando a la siguiente.

Pulse el botón para finalizar.

Haga lo mismo pero con la propiedad Multiline a False.

Notará que pese a tener la propiedad ScrollBars como Vertical, el control TextBox se comporta como si tuviese la propiedad 0 - None (ninguna).

Ahora bien, supongamos que deseamos que nuestra aplicación muestre un texto escrito por nosotros. A lo mejor nos interesa mostrar varios saltos de línea entre párrafo y párrafo.

En Visual Basic 3.0 y anteriores, se utilizaba una constante global, que en mi caso por ejemplo, la declaraba en un módulo (aunque el tema de las constantes lo veremos más adelante, esto valdrá como anticipo). Inserte un módulo al proyecto y escriba Global NL.

Esto produce un salto de línea. Así por ejemplo, si utilizamos por ejemplo en el evento Load de Form1:

NL = Chr$(13) & Chr$(10)

Text1.Text = "Ejemplo con Visual Basic" & NL & "Segunda línea.", obtendremos un resultado como :

Ejemplo con Visual Basic

Segunda línea.

Recuerde que la propiedad Multiline del TextBox debe estar a True para que esto tenga efecto.

En Visual Basic 4.0 esto cambia, ya que Microsoft introduce una constante que nos permite no tener que declarar esta variable. La constante se llama vbCrLf. Por tanto, no es necesario hacer ninguna referencia a ninguna constante en el módulo. Tan sólo con utilizar esta constante es suficiente. Así, en el ejemplo último, en el evento Load del Form1 podemos escribir : Text1.Text = "Ejemplo con Visual Basic" & vbCrLf & "Segunda línea."

 

 

· Ejemplo 4 Uso de MsgBox  :

Abra un nuevo proyecto y pegue un TextBox y un Botón (CommandButton).

En la propiedad Caption del formulario debe escribir Ejemplo 4.

El botón tendrá la misma propiedad que el botón 2 del ejemplo 2 (el de Salir).

La propiedad Visible del Botón, póngala a False.

Aunque el uso de MsgBox no pertenece al apartado de estos controles propiamente, iremos ampliando conocimientos poco a poco, y por eso, será bueno entender lo que es para completarlo en otro capítulo.

Escriba en el evento Load de Form1: Text1.Text = "Ejemplo con Visual Basic" & vbCrLf & "Segunda línea.".

Haga doble click en el botón y escriba para el evento Click del botón el siguiente código:

MsgBox "Usted ha escrito: " & vbCrLf & Text1.Text

Unload Form1

Pulsamos F5 para ejecutar la aplicación. El TextBox no estará visible.

Pulsamos sobre el botón y veremos que se nos presenta un mensaje en pantalla que nos muestra lo que usted ha escrito en el TextBox.

 

 

· Ejemplo 5 usar el PictureBox  :

Abra un nuevo proyecto y pegue un PictureBox y dos Botones (CommandButton).

En la propiedad Caption del formulario debe escribir Ejemplo 5.

Uno de los botones seguirá siendo el mismo que el de los ejemplos anteriores (sin el MsgBox).

El otro botón permite pegar una imagen en la PictureBox. Por ejemplo, la propiedad Caption de este botón póngala como "Pegar". Haga doble click sobre él y escriba en el evento Click:

Picture1.Picture = LoadPicture("C:\WINDOWS\Greca.bmp")

(o cualquier otra imagen siempre y cuando exista).

Esto nos permite visualizar imágenes Bmp, Ico y Wmf en el PictureBox en modo de ejecución.

Ampliaremos ahora un poco nuestros conocimientos con una parte muy importante en Visual Basic como es el tratamiento de errores.

Escriba el siguiente código :

Private Sub Command2_Click()

On Error GoTo fallo:

Picture1.Picture = LoadPicture("C:\Windows\Greca.bmf")

Exit Sub

fallo:

MsgBox "Error, fichero no encontrado."

End Sub

Debe apreciar que el programa intentará ejecutar la primera línea. En caso de error, se irá a la etiqueta llamada fallo y tratará el error. Puede haber muchas causas de errores que veremos en próximos capítulos, pero de momento forzaremos un error y lo trataremos. A veces es importante forzar errores en los programas para controlar una determinada acción.

Por tanto, el programa ejecutará línea a línea. Si no encuentra errores, al llegar a la línea Exit Sub el evento del programa llamado acabará. En caso de encontrar un error de ejecución irá a la etiqueta fallo donde tratará el error hasta encontrarse con End Sub.

 

 

Repaso de lo visto hasta ahora : Además de haber visto el uso de los controles Label, TextBox, CommandButton y PictureBox, nos hemos iniciado con el uso de salto de carro vbCrLf, el uso de MsgBox y el tratamiento de errores.

En los temas siguientes profundizaremos en estos apartados antes de continuar con el resto de controles.


ir al índice