jueves, 16 de abril de 2009

Declaración de Variables

En un Formulario, una variable puede declararse de dos formas : Privada o Pública.
Si se declara Privada, esa variable se puede mover por todo el formulario, (es decir, por todos los procedimientos de todos los controles del formulario y por los Procedimientos que pudiésemos insertar en ese formulario), pero no sale de dicho formulario.
Si se declara como Pública, esa variable puede moverse por todo el formulario, de la misma forma que lo haría declarada como Privada, y además puede ser usada desde otro Formulario o Módulo, citándola con el nombre del Formulario, seguido del nombre de la variable (Formulario.Variable)
En un Módulo una variable puede declararse como Privada, con lo que no saldrá de ese Módulo, o Pública, pudiendo en este caso usarse en todo el programa. Cuando se declara una variable como pública en un Módulo, basta referirse a ella por su nombre, sin citar el nombre del Módulo donde se declaró.

Tipos de declaración de variables.
Sentencia DIM Es la forma mas común de declarar una variable como
Privada. Puede emplearse en un Procedimiento, Función, Formulario o Módulo. La sintaxis es de la siguiente forma:

Dim nombrevariable As Integer (o el tipo que sea)

Declarando una variable con la sentencia DIM, en un formulario, Función, procedimiento o módulo, el entorno de la variable será el explicado anteriormente para una variable declarada como Privada. Es decir, esa variable no sale del formulario, procedimiento ó módulo donde se declaró. Cada vez que entremos al formulario, procedimiento o módulo, esa variable tomará el valor cero (si es numérica) o nulo (si es string).

Sentencia PRIVATE Es la forma de declarar una variable como Privada. Puede
emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma:

Private nombrevariable As Tipovariable

Declarando una variable mediante la sentencia PRIVATE en un Formulario o Módulo, esa variable puede usarse en todo ese Formulario o Módulo (En todos sus Procedimientos y Funciones), pero NO fuera del Formulario o Módulo donde se declaró.
La sentencia Private no puede usarse en un procedimiento o función.

Sentencia PUBLIC Es la forma de declarar una variable como Pública. Puede
emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma:

Public nombrevariable As Tipovariable

Declarando una variable de esta forma en la sección de declaraciones de un Módulo, esa variable puede usarse en cualquier parte del programa citándola simplemente por su nombre.
Si se declara de esta forma en la sección de declaraciones de un Formulario, esa variable puede usarse en toda el programa. Para nombrarla, si estamos en el Formulario donde se declaró basta con citarla por su nombre. Si no estamos en ese Formulario, habrá que citarla por el nombre del Formulario, seguido del nombre de la variable, separados por un punto :
NombreFormulario.Nombrevariable

En un Módulo puede usarse también la sentencia Global en vez de Public :
Sentencia GLOBAL Declara una variable que es válida en todo el programa. La sintaxis es:

Global nombrevariable As tipovariable

La sentencia Global sólo puede usarse en el apartado de declaraciones de un Módulo.
Mediante la sentencia Global la variable puede usarse en todo el espacio del programa.
Sentencia STATIC
Como se dijo anteriormente, una variable declarada en un procedimiento pierde su valor al salir de él. Lo peor es que una vez que el programa vuelva a entrar en ese procedimiento, la variable estará puesta a cero. Afortunadamente, esto último tiene solución. Si declarásemos una variable en un procedimiento o función, como estática, esa variable, aunque no la podremos utilizar fuera de ese procedimiento o función, cuando volvamos a él conservará el valor que tenía cuando lo abandonamos. Esta declaración como estática se realiza mediante la intrucción Static

Static nombrevariable As tipovariable

El nombre de una variable puede ser tan largo como queramos. hasta un máximo de 40 caracteres. En la versión VB para España se pueden usar incluso la Ñ y vocales acentuadas. Es indiferente usar mayúscula ó minúsculas. No se sorprenda, si por ejemplo, la ha declarado con mayúsculas y luego la cita con minúsculas al escribir el código, que automáticamente se cambie a mayúsculas. El nombre de una variable siempre debe comenzar por una letra.
No hay problema por utilizar variables largas. Al compilar el programa no se lleva el nombre, es decir, no le va a ocupar mas espacio. Utilice siempre nombres que le definan la variable con algún sentido. Es muy útil a la hora de acordarse como se llaman, y sobre todo, a la hora de rehacer un programa que realizó hace seis meses.
Pese a que Visual Basic no obliga a declarar variables, es muy útil hacerlo. De esta forma se tiene control sobre el programa. La experiencia se lo irá demostrando.

Resumimos la forma de declarar una variable :
En un Procedimiento (La variable no puede usarse fuera de esta Procedimiento)
Dim Variable As Tipovariable
En un Procedimiento, como permanente (La variable no puede usarse fuera de este procedimiento, y dentro de él conserva el valor aunque se salga y se vuelva a entrar)
Static Variable As Tipovariable
En un Formulario (En su sección de declaraciones)
Como Privada (Solamente se puede usar en ese Formulario)
Dim Variable As Tipovariable ó
Private Variable As Tipovariable
Como Pública (Puede usarse en toda la aplicación)
Public Variable As Tipovariable
En un Módulo
Como Privada (Solamente puede usarse en ese Módulo)
Dim Variable As Tipovariable ó
Private Variable As Tipovariable
Como Pública (Puede usarse en toda la aplicación)
Public Variable As Tipovariable ó
Global Variable As Tipovariable