Tutorial de Visual Basic

Fundamentos de la programación III

Escrito por Mauro Rondinelli el Miércoles 27 de Febrero de 2008 a las 13:54hs

Tipos de procedimientos

En Visual Basic existen tres tipos de procedimientos: Sub, Function y Property. Los procedimientos Function se distinguen de los Sub por que siempre devuelven un valor asociado al nombre del procedimiento. Este valor puede ser usado por el código que lo ha llamado. Los procedimientos Property seiven para crear y manipular propiedades personalizadas de los objetos.

Crear procedimientos Sub

Para crear un procedimiento tienes dos alternativas, una utilizar la opción Procedimiento del menú Insertar o escribirlo completamente en la ventana de código. En la definición de un procedimiento Sub puedes diferenciar dos partes: la cabecera u el cuerpo del procedimiento.

La cabecera del procedimiento se indica el ámbito (si es público o privado) del mismo, su tipo (mediante la palabra Sub), su nombre y la lista de parámetros (entre paréntesis). La lista de parámetros sirve para poder comunicar el procedimiento con el resto de código de la aplicación. Para ello se utiliza un parámetro que indique de alguna forma dicha circunstancia. Un parámetro se comporta como una variable en el cuerpo del procedimiento, pudiendo simplemente utilizar su valor o incluso modificarlo.

Cuando un procedimiento quiere comunicar algún dato a la aplicación, tiene que utilizar un parámetro para ello, es decir, puede servir bien para comunicar un valor al procedimiento o bien para que éste lo comunique a la aplicación.

Llamar al procedimiento Sub

Para llamar a un procedimiento sub lo podemos hacer de dos formas:

Call NombreSub (parámetros)

O también:

NombreSub parámetros

Los argumentos deben coincidir en la llamada en número y tipo con la definición del procedimiento. Tanto si se especifica en la llamada un número distinto de argumentos como si alguno de éstos no pueden convertirse al tipo declarado en la definición del procedimiento, se creará un error de compilación.

La llamada al procedimiento será como una instrucción más del lenguaje, donde se especifica el nombre del procedimiento seguido sin paréntesis, de una línea de argumentos que deberá coincidir en número y tipo con los parámetros de la definición y que darán valor a los parámetros para que se ejecute el cuerpo del procedimiento.

Una vez se llega a la instrucción End Sub del procedimiento el flujo de ejecución vuelve a la línea siguiente a la que ocasionó la llamada.

Crear procedimientos Function

El concepto de procedimiento es válido para un procedimiento Function, pero la diferencia con los procedimientos Sub siempre tiene que devolver un valor asociado al nombre del mismo.
En el cuerpo del procedimiento aparecerá una asignación del valor a devolver con el nombre del procedimiento. El uso de los procedimientos Function suele estar más restringido que el de los procedimientos Sub.

Un procedimiento Function es utilizado cuando necesitamos obtener un único valor, resultado de un cálculo o proceso a realizar. Un procedimiento de este tipo no debería realizar más de lo que se le pide, ni mostrar mensajes, ni devolver más valores en los parámetros, etc.

La diferencia en la definición de un procedimiento Sub y un Function comienza en la cabecera. El procedimiento Function también puede contener una lista de parámetros, no debe aparecer ninguno que serva para devolver el valor que se calcula, ya que dicho valor tiene que asociarse con el mismo nombre del procedimiento Function.

Además, al tener que devolver un valor asociado al nombre del procedimiento Function, el procedimiento tiene que tener un tipo de datos. Esto se especifica indicano la cláusula AS Tipo al final de la cabecera del procedimientos, una vez indicada la lista de parámetros. Si no se especifica ningún tipo de datos, se aplica la misma regla que con las variables, es decir, tendrá el tipo Variant.

Llamar al procedimiento Function

Así como la llamada al procedimiento Sub es como una instrucción más del lenguaje, la llamada al procedimiento Function suele estar situada como parte de una expresión y no como una línea independiente de su código.

Ya que el procedimiento Function devuelve un valor asociado a su nombre, este valor suele asignarse a alguna variable para poder utilizarlo en el código que ha realizado la llamada.
La sintaxis será la siguiente:

NombreVarialbe = NombreFunction(ListaParámetros)

Si quieres utilizar el valor que devuelve el procedimiento Function, tienes que encerrar la lista de argumentos, en la llamada, con paréntesis. Esto no era así en el caso del procedimiento Sub.
Visual Basic incorpora un gran número de funciones que puedes utilizar en tus aplicaciones, entre ellas cabe destacar MsgBox, InputBox, Date...

Paso de parametros

A la hora de escribir la definición de un procedimiento Sub o Function puedes especificar cómo se pasan los parámetros de su lista de parámetros: por valor o por referencia
Cuando el paso es por valor, se utiliza la palabra clave ByVal antecediendo al nombre del parámetro en la definición del procedimiento. En este caso el procedimiento recibe una copia del argumento utilizado en la llamada y no el mismo argumento. Si realizas cambios en su valor, estos cambios podrán ser utilizados en el interior del procedimiento, pero no afectará para nada a la variable que actúa como argumento en la llamada.

En el paso por referencia no se necesita especificar ninguna palabra clave, aunque también puedes hacerlo con la palabra ByRef. En el paso por referencia, el procedimiento estará manejando los propios argumentos utilizados en la llamada, ya que recibe la dirección y no el valor de estos. En este caso cualquier modificación en el valor que se realice en el interior del procedimiento será sufrido por la propia variable que actúe como argumento de llamada.

Ámbito de la acción

Cuando un proyecto esté constituido por distintos módulos, ya sean de formulario, clase o módulos generales de Visual Basic, es importante delimitar dónde se pueden utilizar y dónde no, los procedimientos, variables y constantes que tengas definidos o declaradas.

El nivel de ocultación es establecido por el programador al declarar las variables y constantes o al definir procedimientos utilizando las palabras Public y Private.

Una declaración de variables de tipo Public NombreVariable As Tipo, indica que dicha variable puede ser utilizada tanto en el módulo donde se realiza como en el resto de módulos de la aplicación.
Si la declaración fuera del tipo Private NombreVariable As Tipo, dicha variable sólo podrá ser conocida y por tanto utilizada, en el mismo módulo donde se declara. El uso de Public y Private también se aplica a la declaración de procedimientos.

Un caso especial es cuando se declara una variable dentro de un procedimiento, en estos casos, dichas variables sólo pueden ser conocidas por el propio procedimiento, por lo que no es válida la declaración Public de estas.

Además, si existe conflicto de nombre, al haber declarado dos variables con el mismo nombre, una a nivel de módulo y otra a nivel de procedimiento, siempre tiene preferencia la más local, es decir, la declarada a nivel de procedimiento.

Al utilizar Dim en la declaración de las variables, en lugar de Private o Public, la visibilidad de dichas variables es la que deban tener por defecto: a nivel de módulo está visible para todos los procedimientos y a nivel de procedimiento sólo para éste.

< Volver Al Indice Capitulo Siguiente: Efectos gráficos >

comentarios

No hay comentarios.



agregar comentario

No se permiten comentarios.



publicidad