Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad III
Unidad III
de las caractersticas del lenguaje original tienen numerosas diferencias que los hacen
incompatibles. En muchos casos para portar un cdigo escrito en Visual Basic 6 a Visual Basic
.Net se hace necesario reescribir parte del cdigo. La nueva versin del lenguaje es
mayormente equivalente a C# aunque presenta algunas diferencias. Por eso hay un debate
sobre la validez de esta nueva versin del lenguaje y sus ventajas y desventajas sobre C#.
1.1.4. ENTORNOS DE DESARROLLO.
Existen dos entornos de desarrollo IDE para Visual Basic: el Microsoft Visual Basic x.0 para
versiones desde la 1.0 hasta la 6.0, (con las diferencias entre las versiones desde la 1.0 (MSDOS/Windows 3.1) hasta la 3.0 (16 bits, Windows 3.1) y las de la 4.0 (16/32 bits, Windows
3.1/95/NT) hasta la 6.0 (32 bits, Windows 9x/Me/NT/2000/XP/Vista) y el Microsoft Visual Studio
.NET, entorno integrado para varios lenguajes entre ellos Visual Basic .NET (32/64 Bits,
Windows XP/Vista), con edicin Standard y profesional (ms completa en herramientas pero
con licencia comercial) y edicin Express (ms limitada en herramientas pero gratuita), ambos
diseados por Microsoft. Existe una alternativa gratuita conocida como SharpDevelop para
.NET y Proyecto Mono.
Compiladores [editar]
Dada la naturaleza del lenguaje, el compilador por excelencia es Microsoft Visual Basic que a
su vez es un IDE para el lenguaje; sin embargo existen muchos otros IDEs y compiladores
entre los que se encuentran
SharpDevelop
Mono
Microsoft .NET framework SDK
1.2. ENTORNO DEL VISUAL BASIC
Tras esta pequea introduccin al lenguaje Basic ya estamos en disposicin de encender el
ordenador y comenzar a trabajar con Visual-Basic. Se supone que su PC tiene instalado el
programa Visual basic, bien en su versin de 32 bits si dispone de Win98 Windows XP.
Entre en el programa VB. Le aparecer en pantalla algo similar a esto : (Para VB Vers. 6)
Programacin Digital
Este es el comienzo del programa. Observe que en esta pantalla existen varias cosas. En la
parte superior, la barra de ttulo del programa Visual Basic, con el texto :
Proyect1 - Microsoft Visual Basic (Diseo)
Por debajo de esta barra de Ttulo del VB, encontramos la barra de men de VB, con las
leyendas:
Archivo Edicin Ver Insertar Ejecutar Herramientas Complementos Ayuda
Por debajo de esta barra de men tenemos la barra de herramientas, donde podr ver varios
iconos, que cada uno representa un determinada operacin que Vd. puede realizar. Estas
operaciones estn todas en la lnea de men, y puede acceder a ellas abriendo los mens
desplegables que existen en cada una de las palabrea Archivo Edicin Ver...... de esta lnea
de men. El hecho de colocar las operaciones mas usuales en un icono en la barra de
herramientas se hace para mayor comodidad del usuario.
A la izquierda de la pantalla tiene una caja rectangular con tres columnas de iconos. Esa caja
es la Caja de Herramientas (No la confunda con la barra de herramientas de la parte
superior)
Esta caja de herramientas es, salvando las distancias, lo mismo que una caja de herramientas
real que pueda tener un mecnico para realizar su trabajo. En ella estn los iconos que
representan a los controles con los que Vd. va a desarrollar su aplicacin VB. No estn todos
los que pueden estar, al igual que en una caja de herramientas de un mecnico no estn todas
las herramientas que puede usar. Estn solamente las mas usuales. Si necesita alguna mas,
puede cogerla de otra parte (barra de Men, Herramientas, Controles personalizados) y
agregarlos a esa caja de herramientas, al igual que lo hara un mecnico con una herramienta
especial, que la metera en su caja slo cuando va a realizar un trabajo determinado para el
que la necesite.
Posiblemente esta caja de herramientas no le aparezca tal y como la ve en estos apuntes. Eso
depende si UD. tiene la versin personal o la profesional, o si usa la versin de 16 32 bits.
Esa caja de herramientas puede personalizarla a su gusto. Para ello, deber cargar un
proyecto ya existente en los discos de distribucin de Visual Basic, llamado AUTO32LD.VBP
(versin 32 bits) AUTO16LD.VBP (Versin 16 bits) que se encontrar en el directorio donde
haya cargado el programa Visual Basic. Este proyecto no tiene otra funcin que determinar las
herramientas con las que quiere abrir el VB. Para introducir herramientas nuevas en la caja de
herramientas, basta con desplegar el men Herramientas de la barra de men, e ir a
Controles personalizados. Haciendo clic en esta lnea de controles personalizados, podemos
seleccionar nuevos controles para aadir a la caja de herramientas, marcando la casilla que
est a la izquierda del nombre del control que quiere introducir. Una vez seleccionados todos
los nuevos controles, haga clic en ACEPTAR, y podr observar que esos nuevos controles ya
se le han aadido a la caja de herramientas. Para que esos nuevos controles le aparezcan de
entrada cuando inicia una sesin de VB, debe salir de Visual basic guardando los cambios.
Vuelva a entrar y observar que ya le aparecen esos nuevos controles en la caja. No es
prudente meter muchos controles en la caja. Ponga solamente los que necesite normalmente
en sus aplicaciones. Ocupar menos memoria y tardar menos tiempo en cargar el programa
VB. Adems, cuando realice una aplicacin y la distribuya una vez compilada, Visual Basic
entregar en los disquetes de distribucin las DLLs u OCXs correspondientes a todos los
controles personalizados que Vd. tenga en la caja de herramientas, los necesite el programa o
no los necesite. Esto le va a suponer que est cargando subprogramas intiles en el ordenador
destino de su aplicacin. A la hora de compilar el programa (Crear archivo .EXE) quite todos
los controles personalizados que no necesite su aplicacin. (Slo los controles personalizados.
Los controles comunes - CommandButton, Label, TextBox, etc.-, no se pueden eliminar de la
caja de herramientas)
Para quitar controles de su caja de herramientas, debe proceder de forma anloga, cargando el
programa AUTOxxLD.VBP, abriendo men de herramientas, Controles personalizados,
Programacin Digital
quitando la marca al cuadro situado en la parte izquierda del control a eliminar, y guardando el
proyecto al salir.
En el centro, y ocupando casi toda la pantalla, tenemos el Formulario. Este Formulario es la
interface grfica de su aplicacin, sobre el que podr aadir los controles que necesite. Lo
veremos mas adelante con todo detalle.
Observa dos ventanas, una denominada Ventana de Propiedades, donde puede ver las
propiedades del formulario, Form1, y otra, denominada Ventana de Proyecto. Existe otra
ventana, que no est en la figura anterior, la Ventana de Depuracin. Por cada formulario y
cada control que introduzca en el proyecto, le aparecer otra ventana, denominada ventana de
cdigo.
No se extrae que esta presentacin grfica del Visual Basic coincida con otros sistemas de
desarrollo (Delphi, p.e.). La lgica de desarrollo de una aplicacin en Windows ha llevado a
varios fabricantes de software a utilizar un entorno grfico similar (diramos idntico). A Visual
basic le queda el orgullo de ser el primero en utilizarlo.
Con lo descrito anteriormente ya tenemos, al menos, fijado el argot con el que expresarnos
para comenzar a estudiar el VISUAL BASIC. Veamos con un poco ms detalle la Ventana de
Cdigo.
Esta figura le muestra un Formulario con su ventana de cdigo. Cada objeto grfico de VB
tiene su propia ventana de cdigo. As, si en este formulario hubisemos introducido un Label y
dos CommandButton, todos ellos tendran su propia ventana de cdigo. La ventana de cdigo
la podemos ver haciendo doble clic sobre cualquier objeto de nuestro proyecto. En este caso
hemos hecho doble clic sobre el nico objeto que tenamos: el formulario.
Observe las dos cajas de la parte superior, uno con la inscripcin Objeto: que en el momento
que le sacamos la foto tena Form, y el otro con la inscripcin Proc : (procedimiento), que en el
momento de la foto tena Load. A estas cajas les denominamos Lista de Objetos y Lista de
Procedimientos respectivamente.
Haciendo clic sobre la flecha de cada lista, se despliega un men, en la lista de objetos se
desplegar una lista con los nombres de cada objeto existente en ese momento dentro del
formulario. Haciendo clic sobre uno de los nombres, nos presentar la ventana de cdigo de
ese objeto. Todos los objetos grficos (controles) existentes dentro de un formulario y el propio
formulario aparecern en la misma lista de objetos.
Programacin Digital
Haciendo clic sobre la flecha de la lista de procedimientos, se despliega la lista con todos los
procedimientos posibles para ese objeto. Siempre saldr uno. Si tenemos escrito cdigo en uno
de los procedimientos, saldr por defecto ese procedimiento para el cual hemos escrito el
cdigo. Si no hay cdigo en ninguno de los procedimientos, saldr el que tenga por defecto
cada objeto.
Solamente nos queda por decir, para cerrar este captulo, que es un procedimiento.
Para ello vamos a explicar lo que es un evento. Un Evento es algo que le puede ocurrir a un
objeto. En una internase grfica, lo que le puede ocurrir a un objeto es que se le haga clic,
doble clic, que se pase el cursor del ratn por encima, etc. Este es el Evento. El
Procedimiento es la respuesta por parte de ese objeto, al evento que le est sucediendo.
Esa respuesta, esa forma de Proceder del objeto al evento que le est sucediendo, debemos
programarla segn nuestras necesidades, es decir, debemos escribir el cdigo que necesite
nuestra aplicacin como respuesta al evento que acaba de ocurrir. Posiblemente, no queramos
ninguna respuesta a muchos de los eventos que pueden acaecer a un objeto. Cada objeto
tiene muchos eventos y solamente queremos aprovechar los que nos interesan. Para que un
evento no produzca ningn efecto, basta con dejar sin cdigo el procedimiento correspondiente
a ese evento. En los eventos que queramos que realice alguna operacin, le escribiremos en
su procedimiento el cdigo necesario para que esa operacin se realice. Sin darnos cuenta,
hemos comenzado a escribir el cdigo de la aplicacin.
Observar que el primer elemento del men desplegable de la lista de objetos se denomina
General. Este no es en realidad ningn objeto, sino un apartado existente en cada formulario,
que, al desplegar su lista de procedimientos tiene la seccin de declaraciones, donde
debemos declarar las variables que queremos que afecten a todo el formulario y sus controles,
y tendr adems, los nombres de todos los procedimientos que introduzcamos (vase un
poco mas adelante). En este men desplegable de la lista de procedimientos del General ver
con frecuencia cosas que Vd. no puso all. Cosas tales como Command1_clic, y en la ventana
un determinado cdigo. Esto ocurre cuando se borra algn control que tena escrito cdigo en
alguno de sus procedimientos. Visual Basic sabe lo mucho que cuesta escribir el cdigo
asociado a un control. Si borramos un control de nuestro formulario accidentalmente, despus
de haber introducido todo el cdigo asociado a l, Visual Basic nos sorprende con que ese
cdigo no lo tira inmediatamente, sino que lo reserva como un procedimiento en ese apartado
General del formulario. Si en realidad queramos borrar el control y todo su cdigo, debemos
quitarlo de ese apartado General de nuestro formulario, pues en realidad, si no lo queremos, no
har otra cosa que estorbar. Para quitarlo basta con borrar todo el cdigo que aparece en la
ventana de cdigo cuando hacemos clic sobre el nombre del control eliminado. Deberemos
borrar todo el cdigo, incluida la cabecera donde figura el nombre del control eliminado, y la
parte final, que siempre termina con EndSub.
El primer estorbo lo observar si crea otro control con el mismo nombre, cosa fcil ya que VB
da un nombre por defecto a cada control (Command1, Command2....). El cdigo asociado al
control eliminado pasar automticamente al nuevo control con el mismo nombre.
Una aplicacin puede tener todo su cdigo escrito en los sucesivos procedimientos del
formulario y de los controles que tenga ese formulario.
Puede ocurrir que un determinado evento no est entre los posibles eventos de los controles
de nuestra aplicacin. Piense por ejemplo, el evento de que la variable A sea igual a la variable
B. No existe en ninguno de los controles ese procedimiento. No se preocupe, puede crear un
procedimiento que se ejecute cuando su programa lo decida. Podemos aadir cuantos
procedimientos queramos. Estos procedimientos se aaden al formulario, y debern definirse
por un nombre que Vd. debe elegir. Para que se ejecuten las instrucciones (cdigo) incluido en
ese procedimiento, basta simplemente con nombrarlo por ese nombre.
Para insertar un procedimiento debe ir a la barra de men, hacer clic sobre Insertar, y en el
men que le desplegar, volver a hacer clic sobre Procedimiento. VB le presentar un cuadro
donde le pedir el nombre, si quiere que sea un procedimiento, una funcin o una propiedad. A
lo largo del curso ir viendo que es cada cosa.
Programacin Digital
Escribiendo el cdigo en los sucesivos procedimientos, bien en los propios de cada objeto, bien
en los procedimientos que vayamos creando, es posible completar la aplicacin. Pero en una
aplicacin larga esta forma de escribir el cdigo no sera la ms adecuada. Es mas,
posiblemente sera demasiado engorroso escribirla de esta forma, y muy probablemente
deberamos escribir el mismo cdigo para varios procedimientos, lo que alargara intilmente el
programa y el tiempo de desarrollo.
Para disponer de un sitio donde escribir parte (o la mayor parte) de su programa, puede
introducir uno o varios mdulos. Expliquemos lo que es un mdulo.
Un Mdulo es una parte del programa donde solamente puede escribir cdigo. Es igual que un
formulario, sin interface grfica. Un profesor de Visual Basic lo expresaba diciendo que un
Mdulo es un Formulario sin cara. En un mdulo pueden existir procedimientos al igual que en
los formularios, pero como un mdulo no tiene interface grfica, esos procedimientos debe
introducirlos el programador tal y como explicamos un poco mas atrs. El mdulo tiene su
propia ventana de cdigo, al igual que un formulario, con un objeto nico, el apartado General.
Aqu tambin tenemos la seccin de declaraciones, al igual que los formularios. En esta
seccin de declaraciones se comporta de manera similar a la de los formularios, pero permite
algo que no nos permite la seccin de declaraciones de un formulario: Declarar variables que
se pueden utilizar en todo el programa. Esto ya lo ha visto mas atrs, con las sentencia de
declaracin Global y Public.
Los mdulos se emplean para la declaracin de variables globales, y para escribir el cdigo de
la aplicacin que sea comn a varios formularios. Esto nos evita tener que repetir cdigo
intilmente. Ese cdigo comn se escribir en un procedimiento que previamente habremos
insertado en este mdulo, y lo citaremos por su nombre desde cualquier parte del programa.
Cual es el nombre de un procedimiento existente dentro de un mdulo ? Depende. Si
estamos ejecutando cdigo escrito en otro procedimiento dentro del mismo mdulo, es decir, si
estamos dentro de ese mismo mdulo, basta con citarlo por su nombre : p.e., si en el Mdulo A
tenemos un procedimiento llamado Procedimiento1, y queremos llamarle desde una lnea de
cdigo dentro de ese mismo mdulo, basta con referirse a l con :
Procedimiento1
Si la lnea de cdigo donde nos vamos a referir a l est fuera de Mdulo Ha, deberemos
referirnos a ese procedimiento con:
MduloA.Procedimiento1.
Lo mismo podemos decir para cualquier procedimiento insertado en un formulario. Desde
dentro del formulario basta con referirse a l citndolo por su nombre. Desde fuera de ese
formulario deberemos citarle como :
Formulariox.Procedimientoy
donde damos por hecho que Formulariox es el nombre del formulario que lo contiene, y
Procedimientoy es el nombre del procedimiento.
Fjese en el punto usado como separador entre el nombre del formulario y el nombre del
procedimiento. VB usa como separador un punto. Usa el separador para separar el nombre de
un control y una de sus propiedades (Label1.Caption), para separar el nombre del formulario
del nombre de uno de sus controles (Formulario1.label1.caption) Se ir familiarizando con la
terminologa VB segn vayamos avanzando en el curso.
Funciones
Al igual que introducimos Procedimientos, podemos introducir Funciones en nuestra aplicacin.
Una Funcin es un Procedimiento al que le pasamos uno o varios parmetros. (O Ninguno)
Ver los Procedimientos y funciones mas adelante (Cap. 15). Al igual que los Procedimientos,
Programacin Digital
pueden ser pblicas (se vern en toda la aplicacin) o privadas (se vern solamente en el
formulario donde estn.
Main
Merece la pena pararse un poco para estudiar el Procedimiento Main. Para verlo con mas
detalle, comentaremos como comienza a trabajar una aplicacin realizada en Visual Basic.
Imaginemos una aplicacin que tiene 3 Formularios. En cada uno de ellos tiene cdigo.
Lgicamente la aplicacin tendr que presentar uno de ellos en primer lugar. Deberemos
decirle a Visual Basic cual es el formulario inicial, y ser ese por el que empiece. En ese
formulario dispondremos el cdigo necesario para que la aplicacin se ejecute en el orden
deseado.
Si hacemos clic en la Barra de Men de Visual Basic, en Herramientas | Opciones
obtendremos el siguiente cuadro de dilogo:
Ver que tiene 4 pestaas, y actualmente tiene abierta la pestaa correspondiente a Proyecto,
y tiene desplegada una lista donde nos pide el Formulario Inicial. En esa lista figura tambin la
expresin Sub Main. Si ponemos como formulario inicial uno de los formularios, la aplicacin
comenzar por ese formulario. Si en uno de los Mdulos existentes en el proyecto, ponemos
un procedimiento llamado Main, podemos comenzar la ejecucin de la aplicacin justamente
por ese procedimiento. En ese procedimiento pondremos el cdigo necesario para que,
posteriormente, se muestre uno de los formularios. Esto es muy practico cuando queremos
hacer una funcin previa a mostrar cualquier formulario (abrir una base de datos, por ejemplo).
Para comenzar la aplicacin por Main se elige esa opcin en la lista Formulario Inicial.
Recuerde que Main debe estar en un Mdulo!
El cuadro de dilogo anterior sirve adems para otras cosas. Entre ellas poner el nombre del
proyecto (nombre que no aparecer por ninguna parte, solo en los datos internos de la
aplicacin) y su descripcin.
En otra pestaa podemos configurar varias prestaciones del entorno de trabajo:
Programacin Digital
Guardar la aplicacin antes de ejecutar. Esta prestacin nos va a evitar muchos disgustos.
Es muy prctico guardar la aplicacin antes de ejecutarla, pues de esta forma evitamos que, si
nuestra aplicacin tiene un error tal que hagamos colgarse a Windows, siempre tendremos la
aplicacin metida en el disco duro. Pero tambin es una pequea pesadez tener que esperar a
que se guarde cada vez que la ejecutamos.
Si tenemos la activada la casilla Declaracin de variables requerida nos pondr
automticamente Option Explicit en el encabezamiento de todas las secciones de
declaraciones de la aplicacin.
Podemos elegir tambin las ventanas que queremos que estn siempre visibles, y que verifique
automticamente la sintaxis de una instruccin en el momento de escribirla.
Programacin Digital
Programacin Digital
Ejemplo de un formulario para una aplicacin industrial. Este formulario reproduce el panel de
control de un transmisor - receptor de radio. En este caso, parece que el nombre de ventana le
viene mejor que el de formulario. Observe que dentro del formulario existen gran cantidad de
objetos. Botones, que hacen la misma funcin que el botn real en el equipo de radio, y un par
de displays, que muestran un texto, en este caso las frecuencias de transmisin y recepcin.
Como cualquier objeto Visual Basic, un formulario tiene propiedades y procedimientos:
1.3.1.
Name
Nombre
Define al objeto durante la ejecucin del programa. Se introduce en tiempo de diseo y
no se puede variar durante la ejecucin. Nombre por defecto: Form1 (Form2 y
sucesivos) Este nombre por defecto debe cambiarse, (debera cambiarse por norma
en el momento de introducir el formulario), ya que de no hacerlo corremos el riesgo de
borrar el cdigo existente de otro formulario del mismo nombre en el momento de
guardar la aplicacin.
Caption
Ttulo
Es el texto que aparecer en la barra de Ttulo cada vez que aparezca en pantalla este
formulario. No tiene otra funcin dentro del programa. El programa no accede a este
formulario por el ttulo, sino por el nombre. Puede cambiarse en tiempo de ejecucin.
NOTA.- No confundir Nombre (Name) con Ttulo (Caption)
Control Box
Propiedad booleana que admite los valores de true (verdadero) o False (Falso). Si esta
propiedad es True, aparecer en la esquina superior izquierda el "menos" para
Programacin Digital
10
Tipo de borde
1 - Fixed Single
El formulario tendr un borde fino, y no podr cambiarse su tamao
durante el tiempo de ejecucin. Con este valor, el formulario puede
tener un men de control, barra de ttulo y botones de maximizar y
minimizar. Solo podr cambiarse de tamao utilizando estos botones.
2-Sizable
El formulario tendr borde grueso, y se podr cambiar su tamao en
tiempo de ejecucin mediante los botones de maximizar y minimizar, y
mediante el arrastre de uno de los bordes con el ratn.
3 - Fixed Dialog
El formulario tendr borde grueso, y no se podr redimensionar
durante la ejecucin. No puede tener los botones de maximizar ni
minimizar.
4 - Fixed ToolWindow
En las versiones de 16 bits de Windows y Windows NT 3.51 y
anteriores se comporta como Fixed Single. No puede cambiar de
tamao. En Windows 95 muestra el botn Cerrar, y el texto de la barra
de titulo aparece con un tamao de fuente reducido. El formulario no
aparece en la barra de tareas de W95.
5 - Sizable ToolWindow
En las versiones de 16 bits se comporta como Sizable. En W95
muestra el botn Cerrar y el texto de la barra de titulo aparece con un
tamao de fuente reducido. El formulario no aparece en la barra de
tareas de W95.
Valor por defecto: 2. Sizable
Nota: Al cambiar a determinados valores, las propiedades MaxButton y
MinButton se ponen a False. Pueden cambiarse a True
posteriormente.
Appearance
Apariencia
Programacin Digital
11
Admite los valores 0 (=Flat, plano) y 1 (=3D) Si tiene el valor 1 (3D), el formulario
aparecer con cierto efecto tridimensional, y los controles que le introduzcamos a este
formulario aparecern como esculpidos dentro de l. Con valor 0 (Flat) en esta
propiedad, el formulario aparecer durante la ejecucin como una superficie plana. El
color de fondo se ve afectado al cambiar esta propiedad. Si se cambia a 3D, el fondo
(Backcolor) toma el color definido en Windows en el Panel de Control. Si se cambia a
Flat, toma el color blanco
Autoredraw
Establece el color del fondo del formulario. Puede cambiarse en tiempo de ejecucin.
Valor por defecto: El establecido en el Panel de Control de Windows.
ClipControls
Propiedad Booleana. Establece si un evento Paint vuelve a dibujar el objeto entero (True) o si
solamente dibujan las partes que han sufrido cambios (False)
DrawMode
Establece un valor que determina el aspecto de la salida de un mtodo grfico o el aspecto de
un control Shape o Line. Ver mas adelante los efectos de esta propiedad.
DrawStile
DrawWidth
0 - Lnea continua
1 - Rayas
2 - Puntos
3 - Raya-Punto
4 - Raya - Punto - Punto
5 - Transparente
6 - Continuo interior.
Valor por defecto: 1
Activado
Propiedad booleana. Si est en True, el formulario est activado y se puede interactuar con l.
Si est en False, se desactiva el formulario, impidiendo de esta forma, que se pueda trabajar
con l.
ForeColor
Programacin Digital
12
Establece el color del primer plano del formulario. Es el color que tendrn las letras si
escribimos en l, o los dibujos, si lo que hacemos es dibujar. En tiempo de diseo, determina el
color de la rejilla.
FillStyle
Establece el modo de rellenar controles Shape, o figuras (crculos o cuadrados) creados con
los mtodos grficos Circle y Line.
Valores:
FillColor
0 - Continuo
1 - Transparente
2 - Lnea Horizontal
3 - Lnea Vertical
4 - Diagonal hacia arriba
5 - Diagonal hacia abajo
6 - Cruzado
7 - Diagonal cruzada
Color de relleno
Tipo de letra
Texto Transparente
Tamao de letra
Altura
Programacin Digital
13
Establece un nmero de contexto asociado para este formulario. Este nmero se aplica
para determinar la ayuda interactiva asociada a este formulario. Vea mas adelante, el
tema Ayuda de Windows.
Puede tomar los siguientes valores:
vlido.
Icon
Icono
Esta propiedad define el icono que va a representar a este formulario cuando est
minimizado. Si el formulario es el formulario padre o formulario de inicio de una
aplicacin, este icono es el que toma el Asistente de Instalacin para colocarlo como
icono de apertura del programa en el grupo de programas Windows correspondiente.
Como valor de esta propiedad se le puede asignar directamente el icono o el nombre
de un archivo (con su path correspondiente) que lo contiene, hacindolo directamente
sobre la caja de propiedades.
Valor por defecto: el icono que se le haya programado en la personalizacin.
KeyPreview
Propiedad Booleana. Cuando un formulario tiene dentro de s varios controles, uno de ellos es
el que est activo. En estas condiciones, si se pulsa una tecla, esa pulsacin la recibe en
primer lugar el control que est activo, y si ste no la procesa, pasa esa pulsacin al
formulario. Para hacer que esa pulsacin pase directamente al formulario, debe ponerse esta
propiedad en True.
Left
Borde Izquierdo
Permite que una aplicacin destino inicie una conversacin DDE con el formulario
(origen de datos). Puede tomar los siguientes valores:
0 - No hay interaccin DDE
1 - Source. Indica que este Formulario es origen de una comunicacin DDE. El
dato que se va a traspasar en esa comunicacin DDE estar en un TextBox,
en un Label o en un PictureBox de este Formulario.
LinkTopic
Establece el tema al que este formulario va a responder a una conversacin DDE,
cuando funciona como origen. Es por este tema por el que se debe llamar a este
formulario cuando acta de origen en una conversacin DDE
MDIChild
Programacin Digital
14
Establece un icono personalizado para el puntero del ratn cuando est encima de este
Formulario. Este icono puede ser un bit-map de los existentes en el directorio Icons de
Visual Basic o cualquiera que tengamos. Si se pone 99 como valor de la propiedad
MousePointer (siguiente), cada vez que el puntero del ratn pase por este Formulario,
cambiar su forma y adoptar la del icono elegido.
MousePointer
Determina la forma del puntero del ratn cuando se coloca encima del formulario.
Puede elegirse uno de los punteros preestablecidos (15 en total) o el personalizado
visto en la propiedad anterior. Para elegir ese icono personalizado, debemos poner en
esta propiedad el valor 99.
Picture
Grfico
Mediante esta propiedad podemos poner un grfico como fondo del formulario. El
grfico puede ser un bit-map o un fichero .ICO
ScaleHeight, ScaleWidth, ScaleMode,
Indican la unidad de medida de dimensin de altura y anchura del Formulario.
ScaleMode indica en qu unidades de medida se van a medir esas dimensiones.
Acepta Twips (1), Point(2), Pixel (3), Character (4), Pulgadas (Inch) (5), Milmetros (6),
Centmetros (7). Si colocamos la propiedad ScaleMode en cualquiera de estos
valores, las propiedades ScaleHeight y ScaleWidth nos vendrn dadas
automticamente dependiendo del ancho del Formulario, y no se extrae si encuentra
para estas propiedades valores tan peregrinos como 4815 y 7423. Al haber elegido la
unidad de medida, los valores de ancho (ScaleWidth) y alto (ScaleHeight) sern los
que tengan que ser, medidos en la unidad que hemos elegido. Podemos elegir una
cifra para el ancho y el alto del Formulario de forma que podamos controlar mejor las
distintas posiciones que van a ocupar en l los controles, los textos o los dibujos.
Podemos poner, por ejemplo, que el Formulario mida 400 de ancho (ScaleWidth =
400) y 300 de alto (ScaleHeight = 300) forzndole estas propiedades, bien en tiempo
de diseo en la caja de propiedades, o en tiempo de ejecucin mediante cdigo.
Entonces sabemos que el formulario, independientemente de las dimensiones fsicas
que tenga sobre la pantalla, medir 400 de ancho y 300 de alto, y si en estas
condiciones queremos colocar un control o un dibujo justo en el medio del Formulario,
sabemos que tenemos que colocarle en las coordenadas 200, 150. Que unidad de
medida estaremos utilizando entonces en el Formulario? Unas definidas por el usuario
(distintas para el ancho y el alto) que sern las necesarias para que el Formulario mida
de ancho lo que le hayamos puesto en la propiedad ScaleWidth y de alto lo que le
hayamos puesto en la propiedad ScaleHeight. Observe que la propiedad ScaleMode
se ha cambiado automticamente a User (0) al introducir las dimensiones de ancho y
alto que nosotros queremos.
Estas unidades de medida afectarn a los controles que metamos en este Formulario.
Se medirn en su ancho y alto con la unidad de medida definida para el ancho y alto
del Formulario. Lgicamente tambin afectar a las propiedades Left y Top de los
controles, pero estas propiedades se vern afectadas adems por las propiedades
ScaleLeft y ScaleTop del Formulario que se vern a continuacin.
ScaleLeft, ScaleTop
Estas propiedades, medidas en la unidad de medida elegida para el ancho y alto
mediante las propiedades ScaleMode, ScaleWidth y ScaleHeight anteriores,
expresan las coordenadas iniciales de la parte izquierda y de la parte superior
respectivamente del Formulario. Estas propiedades no afectan a la posicin del
Formulario en la pantalla (Si est maximizado seguir ocupando toda la pantalla, si
est en Normal ocupar el mismo sitio que se dio en tiempo de diseo). Supongamos
que se le asigna a un Formulario, las propiedades ScaleWidth = 400, y ScaleHeight =
Programacin Digital
15
Top
Esta propiedad establece la posicin del borde superior del formulario. Normalmente no
se introduce como valor numrico sino que lo toma automticamente de la posicin que
tenga el Formulario durante el tiempo de diseo Este valor puede cambiarse durante la
ejecucin para, conjuntamente con Left, variar la posicin del Formulario. Los valores
de Top y Left definen la esquina superior izquierda del Formulario.
Visible
Width
Ancho
PROCEDIMIENTOS
Activacin
Doble click
Arrastrar y soltar
Programacin Digital
Click
Deactivate
DragOver
Click
Desactivacin
Arrastrar por encima
16
GotFocus
KeyPress
LinkError
datos
LinkOpen
LostFocus
MouseMove
MouseUp
QueryUnload
Unload
Obtener el foco
Pulsar una tecla
Error de enlace
KeyDown
KeyUp
LinkExecute
Romper el enlace
Load
Cargar el formulario
Perder el foco
MouseDown Pulsar una tecla del ratn
Mover el ratn (Detecta la posicin del ratn sobre el formulario)
Soltar una tecla del ratn
Paint
Pintar
Confirmacin de descarga
Resize
Cambio de tamao
Descargar el formulario
COMMAND BUTTON
BOTON DE COMANDO
El Command Button es un objeto que sirve para introducir datos a travs de la pantalla. El
Botn de Comando tiene la siguiente forma:
El botn de comando puede usarse para la entrada de datos con el ratn, o para validar
cualquier operacin. El tamao puede cambiarse a voluntad, pero la forma siempre es
rectangular. En la figura anterior vemos dos botones de comando, uno de ellos (el Command2)
marcado con unos puntos en su contorno. Estos puntos nos permiten variar su tamao en
tiempo de diseo. Tambin puede cambiarse su tamao y posicin en tiempo de ejecucin.
1.4.1.1. PROPIEDADES
Name
Nombre
Programacin Digital
17
Ttulo
Es el texto que aparece en el botn. Puede cambiarse en tiempo de
ejecucin. No tiene otra funcin dentro del programa.
NOTA.- No confundir Nombre (Name) con Ttulo (Caption)
Appearance
Backcolor
Apariencia
Determina la forma del botn. Admite los valores de Flat
y 3D. No se aprecia en gran medida la diferencia.
(Plano)
Color de fondo
Es el color de un pequeo cuadrado que aparece rodeando el ttulo,
NO el color del botn, que es invariable. Puede cambiarse en tiempo
de ejecucin.
Cancel
Establece un valor que indica si un botn de comando es el botn
Cancelar de un formulario. Es una propiedad booleana, y admite los
valores True o False. Puede utilizar la propiedad Cancel para dar al
usuario la opcin de cancelar los cambios que no se han hecho
efectivos y devolver el formulario a su estado anterior. En un formulario
slo puede haber un botn de comando con la propiedad Cancel =
True.
Default
Establece un valor que determina el control CommandButton que es el
botn de comando predeterminado de un formulario. Slo un botn de
comando de un formulario puede ser el botn de comando
predeterminado. Cuando Default se define a True para un botn de
comando, se define automticamente a False para el resto de los
botones de comando del formulario. Cuando la propiedad Default del
botn de comando est establecida a True y su formulario primario
est activo, el usuario puede elegir el botn de comando (invocando su
evento clic) presionando ENTRAR. Cualquier otro control que tuviera el
enfoque no recibe evento de teclado (KeyDown, KeyPress o KeyUp)
de la tecla ENTRAR a menos que el usuario haya movido el enfoque a
otro botn de comando del mismo formulario. En este caso, al
presionar ENTRAR se elige el botn de comando que tiene el enfoque
en lugar del botn de comando predeterminado.
DragIcon
Establece el icono que se presenta como puntero en una operacin de
arrastrar y colocar.
DragMode
Establece un valor que determina si se usa el modo de arrastre manual
o automtico en una operacin de arrastrar y colocar. Los valores
posibles de nmero son:
0
1
Enabled
Manual (Predeterminado)
Automtico
Habilitado
Programacin Digital
18
Fuente
Es el tipo de letra para el ttulo. Puede cambiarse en tiempo de
ejecucin.
Height
Altura
Establece la altura del botn. Normalmente esta propiedad no se
introduce numricamente, sino que la toma automticamente de las
dimensiones que se le den al botn en tiempo de diseo. Puede
cambiarse, cambiando el valor a esta propiedad, en tiempo de
ejecucin.
HelpContextID
Establece un nmero de contexto asociado para este control. Este
nmero se aplica para determinar la ayuda interactiva.
Puede tener los siguientes valores:
0 = No se especifica nmero de contexto
>0 Un entero que especifica un contexto vlido.
Index
Indice
En el caso de que se tengan varios botones que realicen una funcin
similar (Las teclas numricas de una calculadora, p.e.) puede hacerse
un array con estos botones de comando. Todos tendrn el mismo
nombre, y se diferencian por un ndice. Esta propiedad Index toma el
nmero de ese ndice.
Left
Posicin de su parte izquierda. Indica la posicin del botn,
concretamente de la parte izquierda del mismo. Normalmente esta
propiedad no se introduce numricamente, sino que la toma
automticamente de la posicin que se le de al botn en tiempo de
diseo. Puede cambiarse, cambiando el valor a esta propiedad, en
tiempo de ejecucin.
MouseIcon
Programacin Digital
19
Tag
Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar
a este control alguna informacin adicional para fines externos a la
programacin. Similar a la del formulario.
Top
Indica la coordenada de la parte superior del control. Puede variarse
durante el tiempo de ejecucin. Esta propiedad, juntamente con Left
define la esquina superior izquierda del botn de comando.
Normalmente esta propiedad no se introduce numricamente, sino que
la toma automticamente de la posicin que se le den al botn en
tiempo de diseo. Puede cambiarse, cambiando el valor a esta
propiedad, en tiempo de ejecucin.
Visible
Visible
Propiedad Booleana. Si es true, el botn se ve, si es False el botn no
se ve. Puede cambiarse en tiempo de ejecucin. De hecho, es un
recurso muy usado para dejar visibles en un formulario, solamente los
objetos (controles) necesarios.
WhatThisHelpID
Width
Ancho
Define el ancho del botn. Con Height determina la dimensin del
botn.
DragDrop
KeyPress
MouseMove
DragOver
KeyUp
MouseUp
GotFocus
LostFocus
1.4.2.
LABEL
ETIQUETA
Una etiqueta es un control que nos permite presentar un texto. La etiqueta debe usarse en
aquellos casos en los que exista una informacin esttica o dinmica que no deba ser
Programacin Digital
20
Se ha incluido la trama para poder observar los lmites de la etiqueta sin borde.
1.4.2.1. PROPIEDADES
Alignment
Justificacin
Establece si el texto se justifica a la izquierda, a la derecha, o se centra
sobre la etiqueta.
Appearance
Apariencia
Autosize
Tamao
Plana o tridimensional.
Color de fondo
Es el color de fondo de la etiqueta. Puede cambiarse en tiempo de
ejecucin.
BackStyle
Tipo de fondo
Opaco o transparente. Cuando se selecciona transparente, se ve
solamente el texto de la etiqueta. Cuando se selecciona opaco, este
texto se v sobre un fondo gris.
BorderStyle
Tipo de borde
Sin borde o con borde. En caso de haber elegido en la propiedad
Appearance el modo tridimensional, y eligiendo con borde en esta
propiedad, el aspecto adopta una forma como incrustada en el
formulario.
Caption
Ttulo
Es el texto de la etiqueta. Puede cambiarse en tiempo de ejecucin, lo
que permite usar la etiqueta como dispositivo de presentacin de
textos. No se puede cambiar por el procedimiento de arrastrar con el
ratn, por lo que es el control adecuado cuando se quiere presentar un
texto que no se pueda cambiar por el operador.
DataField DataSource
Establecen la base de datos y el campo donde est el texto Datos que
se llevar a la propiedad Caption. Estas propiedades permiten
presentar los datos de una Base de Datos mediante un procedimiento
Programacin Digital
21
DragIcon
Establece el icono que se presenta como puntero en una operacin de
arrastrar y colocar.
DragMode
Establece un valor que determina si se usa el modo de arrastre manual
o automtico en una operacin de arrastrar y colocar. Los valores
posibles de nmero son:
0
1
Manual (Predeterminado)
Automtico
Enabled
Habilitado
Propiedad Booleana que habilita o deshabilita la etiqueta Cuando est
deshabilitado (Enabled = False), no tienen efecto los eventos que se
produzcan sobre ella, y su apariencia vara, presentando un tono
plido tanto en su cuerpo como en su ttulo. Puede variarse en tiempo
de ejecucin.
Font
Fuente
Es el tipo de letra para el ttulo. Puede cambiarse en tiempo de
ejecucin.
ForeColor
Es el color de la letra de la etiqueta. Puede cambiarse en tiempo de
ejecucin.
Height
Altura
Establece la altura de la etiqueta. Normalmente esta propiedad no se
introduce numricamente, sino que la toma automticamente de las
dimensiones que se le den a la etiqueta en tiempo de diseo.
Index
Indice
En el caso de que se tengan varias etiquetas que realicen una funcin
similar puede hacerse un array con etiquetas. Todas tendrn el mismo
nombre, y se diferencian por un ndice. Esta propiedad Index toma el
nmero de ese ndice.
Left
Nombre
Es el nombre de la etiqueta con el que se le conocer a lo largo del
Programacin Digital
22
programa
TabIndex
N de orden
Al igual que para los botones de comando, la etiqueta tiene propiedad
TabIndex. Sin embargo, una etiqueta NUNCA tomar el foco. Vea la
propiedad UseMneumonic mas adelante.
Tag
Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar
a este control alguna informacin adicional para fines externos a la
programacin.
Top
Indica la coordenada de la parte superior del control. Puede variarse
durante el tiempo de ejecucin. Esta propiedad, juntamente con Left
define la esquina superior izquierda del botn de comando.
Normalmente esta propiedad no se introduce numricamente, sino que
la toma automticamente de la posicin que se le den a la etiqueta en
tiempo de diseo. Puede cambiarse, cambiando el valor a esta
propiedad, en tiempo de ejecucin.
UseMneumonic
Devuelve o establece un valor que indica si al incluir el signo (&) en el
texto de la propiedad Caption del control Label se define una tecla de
acceso. Es una propiedad Booleana.
Los valores que puede tomar son True o False.
True (Predeterminado) Los caracteres (&) que aparezcan en el texto
de la propiedad Caption definen al carcter siguiente como tecla de
acceso. El signo (&) no aparece en la interfaz del control Label.
False Los caracteres (&) que aparezcan en el texto de la propiedad
Caption aparecen como tales en la interfaz del control Label.
En tiempo de ejecucin, al presionar ALT+ la tecla de acceso definida
en la propiedad Caption del control Label, el enfoque se desplaza al
control siguiente al control Label en el orden de tabulacin.
Visible
Visible
Propiedad Booleana. Si es true, la etiqueta se ve, si es False no se ve.
Puede cambiarse en tiempo de ejecucin.
WhatThisHelpID
Width
Ancho
Define el ancho de la etiqueta. Con Height determina la dimensin de
la misma.
WordWrap
Devuelve o establece un valor que indica si un control Label con el
valor True en su propiedad AutoSize se expande vertical u
horizontalmente para adaptarse al texto especificado en su propiedad
Caption. Es una propiedad Booleana.
Esta propiedad puede cambiarse en tiempo de ejecucin
Programacin Digital
23
Change
DbClick
DragDrop
DragOver
LinkClose
LinkError
LinkNotify
1.4.3.
Las cajas de texto son los controles en los que Visual Basic presenta o introduce textos. Es por
tanto un control bidireccional. Normalmente se usan para introduccin de textos, o para la
presentacin de aquellos que el operador pueda cambiar. Para cambiar o escribir un texto en
una caja de texto, basta con conseguir que esa caja de texto tenga el foco y teclear el texto en
el teclado. Esto se puede lograr, bien haciendo clic con el ratn en esa caja de texto, bien con
la tecla TAB, bien por programa.
La caja de texto no se debe usar nunca para presentar textos que el operador de la aplicacin
no deba cambiar. sese para ello la etiqueta, control no bidireccional, que adems tiene la
ventaja de ocupar menos memoria de programa.
Las cajas de texto pueden tener una o varias lneas, segn est la propiedad Multiline. La
capacidad mxima de una caja de textos es de 64 Kbytes.
La forma de una caja de texto es la siguiente, dependiendo de las propiedades BorderStyle y
Appearance:
1.4.3.1. PROPIEDADES.
Alignment
Justificacin
Establece si el texto se justifica a la izquierda, a la derecha, o se centra
sobre la etiqueta. Esta propiedad solamente tiene efecto cuando la
propiedad Multiline est a True, ignorndose en caso contrario. Es
decir, permite colocar el texto justificado a la derecha cuando ese texto
puede ser de varias lneas. Para una nica lnea, se justifica siempre a
Programacin Digital
24
la izquierda.
Esta propiedad no puede cambiarse en tiempo de ejecucin, pero s
puede leerse en que condicin est.
Appearance
Apariencia
Plana o tridimensional.
Backcolor
Color de fondo
Es el color de fondo de la caja de texto. Puede cambiarse en tiempo de
ejecucin.
BorderStyle
Tipo de borde
Sin borde o con borde. En caso de haber elegido en la propiedad
Appearance el modo tridimensional, y eligiendo con borde en esta
propiedad, el aspecto adopta una forma como incrustada en el
formulario.
DataField
DataSource
Fuente de Datos
Establecen la base de datos y el campo donde est el texto que se
llevar a la propiedad Text. Estas propiedades permiten presentar de
una forma muy sencilla datos de una Base de Datos. Se vern cuando
se estudie el control Data y el motor de bases de datos
DragIcon
Establece el icono que se presenta como puntero en una operacin de
arrastrar y colocar.
DragMode
Establece un valor que determina si se usa el modo de arrastre manual
o automtico en una operacin de arrastrar y colocar. Los valores
posibles de nmero son:
0
1
Manual (Predeterminado)
Automtico
Enabled
Habilitado
Propiedad Booleana que habilita o deshabilita la etiqueta Cuando est
deshabilitado (Enabled = False), no tienen efecto los eventos que se
produzcan sobre el TextBox. No se puede escribir el l ni pasarle el
foco, pero s se le puede cambiar el texto mediante el programa.
Puede ser una buena alternativa para impedir que el usuario pueda
cambiar un determinado texto. Esta propiedad puede variarse en
tiempo de ejecucin.
Font
Fuente
Es el tipo de letra que se utilizar en el TextBox. Puede cambiarse en
tiempo de ejecucin.
ForeColor
Color de la letra
Determina el color de las letras del texto.
Height
Altura
Establece la altura de la caja de texto. Normalmente esta propiedad
no se introduce numricamente, sino que la toma automticamente de
las dimensiones que se le den a la caja en tiempo de diseo.
HelpContextID
Programacin Digital
25
Indice
En el caso de que se tengan varias cajas de texto que realicen una
funcin similar puede hacerse un array con ellas. Todas tendrn el
mismo nombre, y se diferencian por un ndice. Esta propiedad Index
toma el nmero de ese ndice.
Left
Nombre
Es el nombre de la caja de texto con el que se le conocer a lo largo
del programa
PasswordChar
En ocasiones, es conveniente que no se pueda leer lo que se escribe
en la caja de texto, caso por ejemplo de la entrada de un password o
palabra de paso. Esta propiedad nos permite indicar un carcter que
sustituye a cualquier carcter que tenga la caja de texto. (Tpicos el *
o?). El texto que tenga en la propiedad Text no cambia por el hecho de
presentar en pantalla un carcter distinto. Esta propiedad puede
cambiarse en tiempo de ejecucin. Para quitar el PasswordChar basta
con forzarlo al carcter nulo :
Text1.PasswordChar =
Programacin Digital
26
Tag
Esta propiedad no la usa directamente Visual Basic. Sirve para asociar
a este control alguna informacin adicional para fines externos a la
programacin.
Top
Indica la coordenada de la parte superior del control. Puede variarse
durante el tiempo de ejecucin. Esta propiedad, juntamente con Left
define la esquina superior izquierda de la caja de texto. Normalmente
esta propiedad no se introduce numricamente, sino que la toma
automticamente de la posicin que se le de en tiempo de diseo.
Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de
ejecucin.
Visible
Visible
Propiedad Booleana. Si es true, la caja de texto se ve, si es False no
se ve. Puede cambiarse en tiempo de ejecucin.
WhatThisHelpID
Width
Ancho
Define el ancho de la caja de texto. Con Height determina la
dimensin de la misma.
Change
DblClick
DragDrop
KeyDown
KeyPress
KeyUp
LinkClose
1.4.4.
FRAME
DragOver
GotFocus
RECUADRO
27
(*)
(*)
Caption
ClipControls
Si esta propiedad est a True, los mtodos grficos en eventos Paint
vuelven a dibujar el objeto entero. Antes del evento Paint se crea una
zona de recorte alrededor de los controles no grficos del formulario. Si
esta propiedad est a False dibujarn
solamente las reas
ltimamente expuestas. En tiempo de ejecucin, esta propiedad es de
slo lectura.
DragIcon
DragMode
(*)
(*)
Enabled
Cuando esta propiedad est a False, tanto los procedimientos
asociados al propio control Frame como todos los controles dentro del
Frame estarn inhabilitados. Si esta propiedad est a True, todos ellos
estn habilitados.
Font
En esta propiedad, el tipo de letra afecta solamente al ttulo del Frame,
Programacin Digital
28
(*)
(*)
(*)
(*)
(*)
(*)
(*)
(*)
(*)
(*)
Visible
WhatsThisHelpID
Width
DblClick
MouseMove
MouseUp
1.4.5.
CHECK BUTTON
OPCION)
DragDrop
DragOver
OPTION BUTTON
MouseDown
(BOTONES DE ELECCION Y
29
Aunque puede parecer que los controles OptionButton y CheckBox funcionan de forma
similar, hay una diferencia importante: Cuando un usuario selecciona un OptionButton, los
otros controles del mismo grupo OptionButton dejan de estas disponibles automticamente.
Por contraste, se puede seleccionar cualquier nmero de controles CheckBox.
Cuando se elige el valor 0, justificado a la izquierda, el ttulo del control aparece a la derecha
del botn, pegado a la figura del botn. Cuando se elige el valor 1, justificado a la derecha, el
ttulo (Caption) aparece a la izquierda del botn, comenzando en la parte izquierda del cuerpo
total del control, es decir, no tiene porqu aparecer con su parte derecha pegado al botn, caso
que el cuerpo total del control se haya hecho mas largo que la palabra del ttulo.
Appearance
Backcolor
Caption
(*)
(*)
(*).
DataField DataSource
Programacin Digital
(*)
(*)
(*)
(*)
(*)
Height
HelpContextID (*)
Index
Left
MouseIcon
MousePointer (*)
Name
TabIndex
TabStop
Tag
Top
Value
(*)
(*)
(*)
(*)
(*)
(*)
(*)
(*)
Comn a ambos controles
El valor de esta propiedad indica si el control est seleccionado (Value
= 1) o no seleccionado (Value = 0 Value = False). Esta propiedad
puede cambiarse en tiempo de ejecucin. Mediante esta propiedad,
podemos tanto forzar el valor como leerlo.
Atencin. Presenta una diferencia entre uno y otro control respecto a
la forma de expresarse respecto a su valor cuando est seleccionado.
Para forzar que el control NO est seleccionado, o para leer el Value
cuando no est seleccionado, podemos utilizar tanto Value = 0 como
Value = False. Sin embargo, cuando lo que se quiere es poner la
propiedad a True hay una diferencia entre ambos controles.
Para el OptionButton podemos utilizar indistintamente las siguiente
formas:
Option1.Value = True
Option1.Value = 1
Programacin Digital
31
(*)
(*)
(*)
1.4.5.2. PROCEDIMIENTOS
Click
DragDrop
KeyDown
KeyPress
LostFocus
1.4.6.
KeyUp
DragOver
GotFocus
Un control ListBox muestra una lista de elementos en la que el usuario puede seleccionar uno
o ms. Si el nmero de elementos supera el nmero que puede mostrarse, se agregar
automticamente una barra de desplazamiento al control ListBox.
Un control ComboBox combina las caractersticas de un control TextBox y un control ListBox.
Los usuarios pueden introducir informacin en la parte del cuadro de texto y seleccionar un
elemento en la parte de cuadro de lista del control. En resumen, un ComboBox es la
combinacin de un ListBox, que se comporta como si de un ListBox se tratase, y de un
TextBox, con comportamiento anlogo a un TextBox sencillo, con la particularidad aqu de
que el texto se le puede introducir por teclado, o elegir uno de los que figuran en la parte
ListBox del Combo.
Estos controles toman la siguiente forma:
32
nmero de elementos de la lista tiene mas elementos de los que le podan caber, gener
automticamente la barra de desplazamiento vertical.
El ComboBox est normalmente sin desplegar. Se despliega cuando se hace clic con el ratn
en la flecha que tiene en su parte derecha (vase fig. Anterior). Al desplegarse, muestra la lista
con todos sus elementos. Haciendo clic con el ratn en cualquiera de sus elementos, el
elemento elegido pasa a la parte TextBox del Combo y la lista vuelve a replegar.
El ListBox (y por tanto el ComboBox) tiene unas propiedades y mtodos particulares que
solamente se pueden aplicar durante el tiempo de ejecucin:
ListCount - Indica el nmero de elementos que tiene la lista
ListIndex - Indica el nmero de orden del elemento seleccionado dentro de la lista.
AddItem - Aade un elemento a la lista.
RemoveItem - Elimina un elemento de la lista.
Text - Obtiene el elemento seleccionado.
List (n) - Obtiene el elemento cuyo orden dentro de la lista es n.
ListCount valdr 0 si la lista no tiene ningn elemento, y n si tiene n elementos.
Para seleccionar un elemento de la lista, basta con hacer clic con el ratn sobre l. Ese
elemento se resaltar con fondo en azul. Una vez seleccionado un elemento, la propiedad
ListIndex tomar el valor del nmero de orden que ocupa ese elemento en la lista,
comenzando por el 0 para el elemento que ocupa el primer lugar. Si no se selecciona ningn
elemento, el valor de la propiedad ListIndex ser -1. El primer elemento de la lista es
ListIndex 0, y el valor de la propiedad ListCount siempre es uno ms que el valor mayor de
ListIndex.
En el ComboBox la propiedad Text contiene el texto que contenga la parte TextBox del
Combo, bien haya sido introducida desde teclado o mediante la recuperacin de un elemento la
parte ListBox del mismo.
Ejemplos
Supongamos que tenemos un ListBox llamado List1, y un ComboBox llamado Combo1. Se
enumeran distintas formas de obtener informacin de ellos.
Variable = List1.Listcount
Variable contendr un nmero con el nmero total de elementos de la lista
List1.
Variable = List1.ListIndex
Variable contendr un nmero con el nmero de orden del elemento de la lista
seleccionado en ese momento.
List1.AddItem ELEMENTO NUEVO
Aade un elemento a List1. En este caso, el elemento aadido es la palabra
ELEMENTO NUEVO.
Variable = VISUALBASIC
List1.AddItem Variable
Aade un elemento a List1. En este caso, el elemento aadido es la palabra
VISUALBASIC.
Variable = List1.Text
Variable contendr el elemento que estaba seleccionado en List1. (Variable
ser una cadena de caracteres)
Variable = List1.List (n)
Programacin Digital
33
(*)
(*)
Propiedad de ListBox solamente.
Determina si los elementos se presentan en una sola columna o en varias columnas, y la forma
de presentar los elementos en el ListBox. Si esta propiedad se pone a 0 la lista tendr
solamente una columna, y presentar los elementos uno debajo de otro. Cuando los elementos
sean mas que los que se pueden presentar en la lista, aparecen automticamente unas barras
de desplazamiento vertical.
Si la propiedad se pone a un nmero distinto a 0, el ListBox es de tipo multicolumna,
presentar en cada columna los elementos que le quepan dependiendo de su dimensin
vertical, y tendr tantas columnas como sea necesario para albergar el nmero de elementos
que tenga. Presentar en su cuadro tantas columnas como se le indique en el valor de esta
propiedad, y si no puede presentar todos los elementos en las columnas que muestra, le
aparecern barras de desplazamiento horizontales para poder movernos por todas las
columnas que tenga.
Recuerde: El nmero que se le asigna a la propiedad Columns no indica el nmero de
columnas que tendr el ListBox sino el nmero de columnas que presenta.
Esta propiedad puede asignarse en diseo, mediante la caja de propiedades, o en tiempo de
ejecucin mediante una instruccin como esta:
Nombrelista.Columns = nmero
.
Esta propiedad no puede definirse a 0 o cambiada desde 0 en tiempo de ejecuciones decir, no
se puede convertir en tiempo de ejecucin un ListBox de mltiples columnas en un ListBox de
columna nica o un ListBox de columna nica en un ListBox de mltiples columnas. Sin
embargo, s es posible cambiar durante la ejecucin el nmero de columnas de un ListBox de
mltiples columnas.
1.4.7.
DataField DataSource
.
Establecen la base de datos y el campo donde estn los datos que se
llevarn al TextBox o ComboBox para presentar datos procedentes de
Programacin Digital
34
(*)
(*)
(*)
(*)
(*)
(*)
(*)
No aplicable a ListBox o ComboBox
Propiedad muy importante.
(*)
List
Es el contenido de la lista.
Si la lista de elementos es corta e invariable, pueden introducirse los elementos en el cuadro de
propiedades durante el diseo.
MouseIcon
MousePointer (*)
Name
(*)
(*)
Sorted
Establece o devuelve un valor que indica si los elementos de un ListBox o ComboBox
se colocan automticamente en orden alfabtico. Los valores que puede adoptar son
True o False.
True Los elementos de la lista se ordenan alfabticamente (sin distinguir entre
maysculas y minsculas).
Programacin Digital
35
(*)
(*)
(*)
(*)
(*)
(*)
(*)
1.4.7.2. PROCEDIMIENTOS
Click
LostFocus
DblClick
DragDrop
DragOver
GotFocus
KeyDown
KeyPress
Son dos controles similares, para introducir un dato cuasi-analgico en una aplicacin. Se
toman directamente de la caja de herramientas, y tienen un aspecto parecido al de un control
de volumen de un equipo de msica. El HScrollBar est en posicin horizontal, y el VScrollBar
en posicin vertical.
Mediante estos controles se pueden introducir datos variando la posicin del cursor.
1.4.8.1. PROPIEDADES de HScrollBar y VScrollBar
Programacin Digital
36
Las sealadas con (*) son comunes a ambos controles y no presentan novedades respecto a
las ya comentadas para los controles precedentes.
DragIcon
DragMode
Enabled
Height
HelpContextID
Index
(*)
(*)
(*)
(*)
(*)
(*)
LargeChange
Esta propiedad establece la variacin de la propiedad Value cada vez que se
hace clic en el interior de la barra de desplazamiento, en la parte por donde
pasa el cursor.
Left
(*)
Max
Esta propiedad establece el valor mximo para la propiedad Value, es decir, el
valor de esta propiedad cuando el cursor est en su parte mxima. (Recuerde
que el cursor est en el mximo, cuando est mas a la derecha, caso del
HScrollBar, o cuando est en la parte mas baja, caso del HScrollBar.
Min.
Esta propiedad establece el valor mnimo para la propiedad Value, es decir, el
valor de esta propiedad cuando el cursor est en su parte mnima. (Recuerde
que el cursor est en el mnimo, cuando est mas a la izquierda, caso del
HScrollBar, o cuando est en la parte ms alta, caso del HScrollBar.
MouseIcon
MousePointer (*)
Name
(*)
(*)
SmallChange
TabIndex
TabStop
Tag
Top
Value
Esta propiedad lee o establece el valor dado por la posicin del cursor. Este
valor tiene un mnimo, establecido por Min y un mximo, establecido por Max.
Esta propiedad es la que se debe leer para conocer la posicin del cursor.
Visible
WhatsThisHelpID
Width
(*)
(*)
(*)
DragDrop
DragOver
KeyUp
LostFocus
Scroll
GotFocus
KeyDown
KeyPress
Comentario
El Procedimiento Change se produce cuando, tras mover el cursor, se suelta el
botn del ratn. Esto produce el efecto de que el cambio que se tenga que producir con el
Programacin Digital
37
TIMER
TEMPORIZADOR
Este objeto permite establecer temporizaciones. Presenta una novedad respecto a los
controles estudiados hasta ahora. El control Timer solamente se ve durante el tiempo de
diseo. En tiempo de ejecucin, el control permanece invisible.
La temporizacin producida por el Timer es independiente de la velocidad de trabajo del
ordenador. (Casi independiente. El timer no es un reloj exacto, pero se le parece)
Se toma directamente de la caja de herramientas, y tiene el aspecto siguiente :
1.4.9.1. PROPIEDADES
Enabled
(*)
Index
(*)
Interval
El valor de esta propiedad nos dar el intervalo de tiempo (en milisegundos) en que se
producir un evento Timer y consecuentemente, realizar el procedimiento asociado a este
evento. Si el valor de la propiedad Interval est a 0 (Predeterminado), no se produce el evento
Timer. (El control Timer est deshabilitado cuando se pone la propiedad Interval = 0)
Left
Name
Tag
Top
(*)
(*)
(*)
(*)
Shape es un control grfico que se muestra como un rectngulo, un cuadrado, una elipse, un
crculo, un rectngulo redondeado o un cuadrado redondeado.
Utilice controles Shape en tiempo de diseo en lugar o adems de invocar los mtodos Circle
Programacin Digital
38
PROPIEDADES
(*)
BackStyle
Esta propiedad establece si Shape permite ver a su travs (Transparent) o n
lo permite (Opaque)
BorderColor
Establece el color del borde.
BorderStyle
Establece el tipo de borde. Puede ser : Transparent, (No se ve el borde), Solid,
(Borde de lnea continua),Dash, (lnea a rayas), Dot, (lnea a puntos), DashDot, (lnea de raya - punto), dash-Dot-Dot, (lnea de raya - punto - punto),
InsideSolid, (raya continua)
El efecto de establecer la propiedad BorderStyle depende del valor de la
propiedad BorderWidth. Si BorderWidth no es 1 y BorderStyle no es 0 o 6,
BorderStyle se establece como 1.
BorderWidth
Establece el ancho de la lnea.
DrawMode
FillColor
FillStyle
Height
Index
Left
Name
(*)
(*)
(*)
(*)
(*)
(*)
(*)
Shape
Establece la forma del control. Puede ser : Rectangular, cuadrado, redondo,
ovalado, cuadrado con esquinas redondeadas y rectangular con esquinas
redondeadas.
Tag
Top
Visible
Width
(*)
(*)
(*)
(*)
1.4.10.2.
PROCEDIMIENTOS
No tiene.
Programacin Digital
39
Es por tanto un trmino medio entre la programacin tradicional, formada por una sucesin
lineal de cdigo estructurado, y la programacin orientada a objetos. Combina ambas
tendencias. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos
de programacin, debemos inventar una palabra que la defina: PROGRAMACION VISUAL.
La creacin de un programa bajo Visual Basic lleva los siguientes pasos:
- Creacin de un interface de usuario. Este interface ser la principal va de comunicacin
hombre mquina, tanto para salida de datos como para entrada. Ser necesario partir de una
ventana - Formulario - a la que le iremos aadiendo los controles necesarios.
- Definicin de las propiedades de los controles - Objetos - que hayamos colocado en ese
formulario. Estas propiedades determinarn la forma esttica de los controles, es decir, como
son los controles y para qu sirven.
- Generacin del cdigo asociado a los eventos que ocurran a estos objetos. A la respuesta a
estos eventos (clic, doble clic, una tecla pulsada, etc.) le llamamos Procedimiento, y deber
generarse de acuerdo a las necesidades del programa.
- Generacin del cdigo del programa. Un programa puede hacerse solamente con la
programacin de los distintos procedimientos que acompaan a cada objeto. Sin embargo, VB
ofrece la posibilidad de establecer un cdigo de programa separado de estos eventos. Este
cdigo puede introducirse en unos bloques llamados Mdulos, en otros bloques llamados
Funciones, y otros llamados Procedimientos. Estos Procedimientos no responden a un evento
acaecido a un objeto, sino que responden a un evento producido durante la ejecucin del
programa.
No es necesario entender de momento lo anterior. Visual Basic introduce un concepto nuevo
de programacin, y es necesario cambiar hasta el argot del programador. Posiblemente se le
habrn acumulado demasiados trminos de una sola vez. Es normal. A poco que siga leyendo
ver las cosas mas claras cuando se explique una por una.
1.5.1.
Programacin Digital
40
Decamos que Basic no exige la definicin previa de las variables. Otras herramientas exigen
que se haga as. Por lo tanto es normal encontrar, en otros sistemas de programacin, que un
programa comienza de la siguiente forma:
Declare Nombre As String
Declare Apellido1 As String
Declare Apellido2 As String
Declare Direccin As String
Declare Telfono As String
Declare DNI As Nmero
Mediante estas declaraciones, el programa sabe de qu tipo de dato se trata y por tanto cmo
debe trabajar con l. En otros sistemas de programacin distintos de Basic, es necesario
realizar esta declaracin antes de introducir una variable.
Basic permite que no se declaren. Cuando a lo largo del programa le introducimos una variable
nueva, asume que es una variable y que el tipo es el adecuado para el valor que le estamos
introduciendo en ese momento.
Por ejemplo, si Basic encuentra estas instrucciones
DNI=50000000
Nombre ="Pedro"
Telfono = "1234567"
Entiende que DNI, Nombre y Telfono son variables, que DNI es un nmero (No hemos metido
su valor entre comillas), y que Nombre y Telfono son sucesiones de caracteres alfanumricos
(su valor est entre comillas)
Esta particularidad de no necesitar declarar las variables hace que sea sencillo introducir una
variable nueva. Sin embargo entraa un gran peligro. Imagnese que en un paso posterior del
programa, le mandamos escribir esos tres datos anteriores con la instruccin PRINT
Print DNI
Print Nombre
Print Telwfono
Habr observado en tercer lugar la palabra Telwfono, que por error ha introducido el
programador. Basic interpreta que Telwfono es una variable e ir a leer en memoria el valor
que tiene. No tendr ningn valor. Por lo tanto no escribir nada y encima no dar ningn aviso
de que se ha cometido un error. Nada es gratis en esta vida, y la facilidad para introducir
variables se paga con la posibilidad de un error.
Basic ha pensado en ese problema, y se puede solucionar con esta que ser la primera
instruccin BASIC que vamos a estudiar:
1.5.2. OPTION EXPLICIT
Obliga a declarar previamente las variables que se vayan a usar. De no haberla declarado
antes de usarla, el programa dar una comunicacin de error.
1.5.3.
TIPOS DE VARIABLES
Las variables pueden ser de los siguientes tipos: (El nmero indicado en segundo lugar indica
el nmero de Bytes que ocupa en memoria.)
Booleana
Byte
Integer
(2)
(1)
(2)
Programacin Digital
Long
Single
Doble
Currency
String
Date
Objet
Variant
(4)
(4)
(8)
(8)
(*)
(8)
(4)
(**)
(*) Una variable tipo String ocupa el mismo nmero de bytes que caracteres tenga la cadena.
(**) Una variable tipo Variant ocupa 16 bytes si se trata de un nmero y 22 bytes + longitud de
la cadena si se trata de un dato tipo cadena de caracteres.
Existen tambin variables definidas por el usuario (Ya ver la sentencia Type). En este tipo de
variables se pueden introducir muchos datos de distinto tipo. Los bytes necesarios para
almacenar esa variable dependern de los datos que se hayan definido.
Dentro de las variables Objet (variables que se refieren a objetos) existe una gran variedad que
a estas alturas del curso no debemos complicarnos con ellas. Pero para adelantar algo,
veremos que una variable puede ser del tipo Form - Formulario - , tipo Picture, etc. etc.
Cada tipo de variable ocupa unos determinados bytes. Si no se define una variable, VB toma
como tipo por defecto para la variable el tipo Variant. Este tipo ocupa ms bytes que, por
ejemplo, un integer. Si el tipo de dato que vamos a introducir en una variable es un integer, y
no la hemos declarado como tal, VB asumir para esa variable que es del tipo Variant, lo que le
llevar a gastar mas bytes de memoria (16) que los que necesitara (2) si la hubisemos
declarado previamente. Si esa variable va a estar en el rango de 0 a 255, y no declaramos
previamente que la variable va a se del tipo Byte, o la declaramos como integer, p. e., estamos
desperdiciando memoria RAM y posiblemente, retardando la ejecucin del programa. Lo mismo
podemos decir del resto de las variables, y lo importante que es definirlas y definirlas bien.
NOTA. Observe en la lista anterior que un dato Booleano ocupa 2 Bytes, mientras que un dato
tipo Byte ocupa un byte. En muchas ocasiones declaramos variables tipo Boolean con la
intencin de que ocupen menos espacio. Paradoja del VB. Si la declaramos como Byte
ocupamos menos espacio en memoria. Declarar una variable como Boolean tiene tambin sus
ventajas (escribir menos cdigo por lo general cuando necesite leer o escribir una variable tipo
Boolean), pero tenga presente esta observacin respecto a los datos Boolean.
Puede declarar el tipo de la variable mediante un carcter despus del nombre de la variable.
Esta tcnica, obligatoria en Quick-Basic, est en desuso en VB. No es recomendable definir el
tipo de esta forma, pues existe un serio peligro de error. De cualquier forma, eso es potestativo
del programador y de sus costumbres.
Los caracteres que definen cada tipo de variable son:
%
Integer
&
Long
Single
Double
Currency
String
Programacin Digital
42
En este segundo caso, si se introduce como Var2 una cadena de caracteres con ms de 15
caracteres, Var2 tomar solamente los 15 primeros. Visual basic no presenta ningn aviso de
que esa variable ha omitido los caracteres que han sobrepasado la cifra de 15. Si desea que el
usuario conozca esa circunstancia, debe introducir el cdigo oportuno para producir el aviso.
La declaracin de variables tipo String con nmero de caracteres predefinido presenta tambin
inconvenientes a la hora de tratar esa cadena de caracteres con sentencias tales como Mid,
Left y Right, o a la hora de aadir una cadena a otra. La experiencia nos indica que NO
merece la pena declarar variables tipo String con el nmero de caracteres prefijado.
En una gran parte de los casos una variable que se compone de nmeros debe declararse
como una variable de cadena de caracteres (String), y no como numrica. Cuando pensamos
por ejemplo en un nmero de DNI, compuesto por 7 u 8 cifras, un cdigo postal, el nmero de
una calle, el piso de un edificio, parecen invitar a que la variable que los contenga sea una
variable de tipo numrico (Byte, Integer, Long, ...). Estas variables, aunque su contenido sean
nmeros, siempre se deben declarar como String, ya que se tratan en realidad de cadenas de
caracteres, aunque estos sean nmeros. Para aclarar ms estas ideas, piense en el nmero
del DNI con la letra del NIF incluido, o que el lugar del DNI se deba rellenar con el nmero del
permiso de residencia, (lleva letras). Piense en el cdigo postal de una provincia que comienza
por 0 (08XXX = Barcelona). Si la variable que va a contener ese cdigo postal se declara como
numrica, el cero de la izquierda lo desprecia, por lo que ese cdigo postal quedara reducido
al 8XXX, nmero de 4 cifras que el cartero nunca reconocera como un cdigo postal, que
necesariamente ha de tener 5 cifras. Para terminar, piense la forma de introducir en una
variable numrica el nmero 32Bis de una calle o el piso S2 de un edificio. O piense en una
variable que va a contener un cdigo de un producto. Ese cdigo siempre va a ser un nmero,
por ejemplo de 9 cifras. Ha pensado como tratara el ordenador una variable numrica que
contiene el cdigo 000100123? El resultado sera que convertira ese cdigo en la cifra 100123,
y Vd. deber buscarse la vida para aadir los ceros iniciales a la hora de sacarlo a una
impresora, por ejemplo.
En todos los casos anteriores, el nmero no representa una cantidad numrica, sino un
nombre. Lo que ocurre es que ese nombre contiene solamente nmeros.
Qu variables debemos declarar entonces como numricas? La respuesta es bien sencilla:
Aquellas que van a contener datos con lo que vamos a realizar operaciones
matemticas.
Las variables booleanas (True/False) pueden en muchos casos sustituirse por una variable del
tipo Byte. Si ese datos True / False se va a introducir en una base de datos o en fichero en el
disco, puede ser mas prudente poner 0 en vez de False y 1 en vez de True.
Una variable byte ocupa muy poco, simplemente 1 byte como su nombre indica. Pero no puede
contener nmeros mayores de 255 ni nmeros negativos.
Cada vez que declare una variable numrica piense en los valores que puede tener, sobre todo
cuando esa variable va a ser el resultado de una operacin matemtica. Recuerde el escaso
margen de una variable tipo Integer (de -32768 a 32767)
Si la aplicacin va a tratar moneda, piense en la forma de expresar los nmeros decimales y el
nmero de ellos permitidos, as como el redondeo. La variable correcta para este caso es
Currency, pero Currency le aade automticamente el tipo de moneda de cada pas (Pts. Para
Espaa) lo que con frecuencia es un engorro. Los datos del tipo de moneda los toma del
sistema operativo del ordenador, por lo que no se extrae si le expresa el nmero de pesetas
en dlares. Cambie el pas en su S. O.
1.5.4.
Programacin Digital
43
Denominamos mbito de una variable a las partes del programa donde esa variable est
declarada.
Para entenderlo mejor, veamos someramente la forma de un programa
desarrollado en VB.
Un programa VB tiene uno o varios formularios. Cada formulario tiene varios controles. Tanto el
formulario como cada uno de sus controles tienen una parte del programa, justamente la parte
relacionada con cada uno de los eventos que pueden suceder bien al formulario o a los
controles. A estas partes las habamos llamado Procedimientos. Podemos tener
procedimientos que no estn relacionados con ningn evento ocurrido al formulario o a sus
controles. (Los Procedimientos que iremos insertando a lo largo de la aplicacin)
Aparte de formularios y controles, un programa puede tener Mdulos, y en cada uno de los
mdulos podemos insertar cuantos Procedimientos y Funciones queramos. La estructura de
un programa VB puede ser de la siguiente forma:
Formulario1
Declaraciones
Proc. A1
Proc. A2
Proc. A3
Proc. A4
Proc. A5
Proc. AA1
Proc. AA2
Proc. AA3
Formulario2
Declaraciones
Proc.B1
Proc.B2
Proc.B3
Proc.B4
Proc.BB1
Proc.BB2
Proc.B33
Formulario3
Declaraciones
Proc.C1
Proc.C2
Proc.C3
Proc.C4
Proc.CC1
Proc.CC2
Proc.CC3
Proc.CC4
Mdulo1
Declaraciones
Proc.D1
Proc.D2
Proc.D3
Proc.D4
Modulo2
Declaraciones
Proc.E1
Proc.E2
FuncinE1
FuncinE2
FuncinE3
FuncinE4
FuncinE5
FuncinE6
Si se declara una variable dentro de un procedimiento o Funcin, esa variable "NO SALE" del
Procedimiento o Funcin donde se declar. El procedimiento puede estar en un Formulario
(Cualquier procedimiento de un control o un procedimiento creado por nosotros) o en un
Mdulo (En este caso, el procedimiento solo puede ser creado por nosotros).
En un Formulario, una variable puede declararse de dos formas: Privada o Pblica. Para
declarar una variable a nivel de formulario debe hacerse en la seccin de declaraciones, que
est la ventana de cdigo Objeto = General, Proc. = Declaraciones. 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 pudisemos insertar en ese
formulario), pero no sale de dicho formulario. Si se declara como Pblica, esa variable puede
moverse por todo el formulario, de la misma forma que lo hara declarada como Privada, y
adems puede ser usada desde otro Formulario o Mdulo, citndola con el nombre del
Formulario, seguido del nombre de la variable (Formulario.Variable)
En un Mdulo una variable puede declararse como Privada, con lo que no saldr de ese
Mdulo, o Pblica, pudiendo en este caso usarse en todo el programa. Cuando se declara una
variable como pblica en un Mdulo, basta referirse a ella por su nombre, sin citar el nombre
del Mdulo donde se declar.
En VB es posible declarar varias veces las variables, es decir, pueden declararse a nivel de
formulario, en su apartado de declaraciones, y esa variable conservar su valor en todas las
partes de ese formulario. Sin embargo, si se declara una variable con el mismo nombre a un
nivel inferior, por ejemplo al principio de un procedimiento, esa variable ser una variable
distinta a la anterior, aunque tenga el mismo nombre, a al declararla en un Procedimiento,
solamente ser vlida en ese Procedimiento. Una vez que hayamos salido de ese
procedimiento, la variable con ese nombre volver a ser la declarada en el Formulario. En
realidad, lo que tenemos son dos variables distintas, pero con el mismo nombre, una declarada
para todo el formulario excepto para el procedimiento donde se volvi a declarar, y otra para
ese procedimiento concreto.
NOTA.- No es recomendable declarar una variable a dos niveles. Es mucho mejor utilizar otro
nombre para esa variable dentro del procedimiento donde se le declarara por segunda vez. A
esta nota cabe exceptuar cuando declaramos variables para una operacin tipo contador
Programacin Digital
44
For I = 1 To N
Esa variable I es prctico declararla con el mismo nombre en cada Procedimiento donde se
use.
1.5.5.
Sentencia DIM: Es la forma mas comn de declarar una variable como Privada. Puede
emplearse en un Procedimiento, Funcin, Formulario o Mdulo. 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, Funcin, procedimiento o
mdulo, el entorno de la variable ser el explicado anteriormente para una variable declarada
como Privada. Es decir, esa variable no sale del formulario, procedimiento mdulo donde se
declar. Cada vez que entremos al formulario, procedimiento o mdulo, esa variable tomar el
valor cero (si es numrica) o nulo (si es string).
Sentencia PRIVATE: Es la forma de declarar una variable como Privada. Puede emplearse
solamente en la seccin de declaraciones de un Formulario o Mdulo. La sintaxis es de la
siguiente forma:
Private
nombrevariable As Tipovariable
Sentencia PUBLIC: Es la forma de declarar una variable como Pblica. Puede Emplearse
solamente en la seccin de declaraciones de un Formulario o Mdulo. La sintaxis es de la
siguiente forma:
Public
nombrevariable As Tipovariable
Declarando una variable de esta forma en la seccin de declaraciones de un Mdulo, esa
variable puede usarse en cualquier parte del programa citndola simplemente por su nombre.
Si se declara de esta forma en la seccin 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, separado por un punto:
NombreFormulario.Nombrevariable
En un Mdulo puede usarse tambin la sentencia Global en vez de Public:
Sentencia GLOBAL: Declara una variable que es vlida en todo el programa. La sintaxis es:
Global
nombrevariable As
tipovariable
Programacin Digital
45
el valor que tena cuando lo abandonamos. Esta declaracin como esttica se realiza mediante
la instruccin Static
Static
nombrevariable
As
tipovariable
El nombre de una variable puede ser tan largo como queramos. Hasta un mximo de 40
caracteres. En la versin VB para Espaa se pueden usar incluso la y vocales acentuadas.
Es indiferente usar mayscula minsculas. No se sorprenda, si por ejemplo, la ha declarado
con maysculas y luego la cita con minsculas al escribir el cdigo, que automticamente se
cambie a maysculas. 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
algn 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 seccin de declaraciones)
Como Privada (Solamente se puede usar en ese Formulario)
Dim Variable As Tipovariable
En un Mdulo
Como Privada (Solamente puede usarse en ese Mdulo)
Dim Variable As Tipovariable
46
SENTENCIAS CONDICIONALES.
Programacin Digital
47
' variable es una variable que puede tomar los valores (p.e.)
de 1 a 4
Case 1
Instrucciones a ejecutar en caso de que variable = 1
Case 2
Instrucciones a ejecutar en caso de que variable = 2
Case 3
Instrucciones a ejecutar en caso de que variable = 3
Case 4
Instrucciones a ejecutar en caso de que variable = 4
End Select
Este procedimiento resulta mucho ms sencillo y rpido que las sentencias If Then Else
vistas anteriormente, cuando el margen de eleccin es mayor que 2.
Cuando lo que queremos es elegir un valor, no ejecutar instrucciones como hacamos
anteriormente, disponemos de otras dos funciones: Choose y Switch.
Switch toma una serie de parmetros, todos por parejas. El primer trmino de cada pareja es
la expresin a evaluar. El segundo es el valor que tiene que devolver. En realidad Switch es
una funcin (las funciones las veremos muy pronto)
A = Switch (B=1, 5, B=2, 7, B=3, 11)
Esta instruccin obtiene un valor para A que depender del valor que tome B entre los valores
posibles (1, 2 3)
La sentencia Choose es casi igual, cambia solamente la forma. La misma instruccin anterior
puede realizarse con Choose de la siguiente forma:
A = Choose ( B, 5, 7, 11 )
En estas sentencias, Switch y Choose, si el valor de B no coincide con ninguno de los
valores que se le haban establecido (1, 2 3 en nuestro caso), la sentencia devuelve el valor
Nulo ( Null ). Esto puede producir algn error si no se contempla esa posibilidad.
Con estas sentencias condicionales es posible realizar bifurcaciones del programa, cambiar las
propiedades de un objeto, obtener resultados de operaciones,....
Sentencias de bucle.
Es muy comn utilizar bucles a lo largo de un programa. Un bucle es una sucesin repetitiva de
instrucciones, que se estarn realizando mientras se cumpla una condicin o mientras no se
cumpla otra condicin. Es tan sencillo como esto:
Mientras condicin
Instrucciones
Fin del bucle
Existen dos formas de bucle: Una, que realiza un nmero determinado de recorridos por el
bucle. Es el denominado bucle por contador. Otra, realiza el bucle hasta que se cumpla (o deje
de cumplirse) una condicin. Es el llamado bucle por condicin.
Bucle por contador
Realiza el bucle tantas veces como le indiquemos. Por ejemplo, en este bucle nos va a
presentar las 26 letras maysculas del alfabeto ingls
Programacin Digital
48
For N=65 To 90
Label1.caption = Chr (N)
Next N
Este "programa" nos presentar en una caja (Label) los caracteres cuyo nmero ASCII vaya
desde el 65 (A) al 90 (Z) Comenzar presentando el correspondiente al nmero 65, e ir
presentando sucesivamente el 66, el 67, etc., hasta llegar al 90, donde se parar.
Bucles por condicin
Ejecuta las instrucciones del bucle mientras se cumple una condicin
X=0
Do While X < 1000
X=X+1
Loop
El programa toma una variable (X) que previamente tuvimos la curiosidad de ponerla a cero, e
incrementa su valor una unidad. Analiza si el valor de X es menor que 1000, y si es cierto,
vuelve a realizar el bucle. As hasta que X ya no sea menor que 1000. Al dejar de cumplirse
que X sea menor que 1000, sale del bucle. Acabamos de realizar un temporizador, y tambin
de exponer las sentencias condicionales y los bucles, inicio de cualquier curso de Basic. Como
final de leccin, se propone un problema. Con el primer bucle, donde visualizbamos los
caracteres A a la Z, posiblemente no nos diese tiempo de ver cada una de las letras que iban
apareciendo en la pantalla, en la etiqueta Label1, dado que cambiara con mucha velocidad, y
solamente veramos la Z, que es donde se detuvo el programa. Podemos poner un
temporizador cada vez que presente una letra, y as nos dar tiempo a verla. Con los dos
bucles vistos anteriormente ya podemos hacerlo.
Si lo que queremos es que el programa se ejecute mientras no se cumpla una determinada
condicin, la sentencia ser:
X=0
Do Until X > 1000
X=X+1
Loop
Observe que la diferencia entre una y otra es la condicin, While para indicar Mientras se
cumpla que ... y Until para indicar Mientras no se cumpla que ....
Para terminar bien el programa anterior utilizaremos la condicin de While
cumpla la condicin)
For N=65 To 90
Label1.caption = Chr ( N )
Label1.RefreshN
X=0
Do While X < 1000
X=X+1
Loop
Next N
(Mientras se
Este es nuestro primer programa en BASIC. En VISUAL BASIC es idntico, pero nos falta la
interface grfica. Para realizarla basta con abrir el VB y sobre el formulario que aparece al
abrirlo, introducir una etiqueta, (Label) que llevar el nombre por defecto de Label1. Solo nos
queda pensar donde introducimos el cdigo anterior. Podemos introducir un botn de comando
(Command Button) que saldr con el nombre por defecto de Command1. Haga doble clic sobre
Programacin Digital
49
Hemos puesto nuestra primera piedra en Visual Basic. Este ejemplo es muy sencillo. Visual
Basic es tan sencillo como este ejemplo.
1.5.7.
FUNCIONES DE CADENAS
Se denomina CADENA a una sucesin de caracteres. Una cadena puede tener uno o varios
caracteres alfanumricos. Una cadena es tambin una sucesin de nmeros.
Ejemplo de cadenas:
Curso de Visual Basic
abcdefghijklmnopqrstuvwxyz1234567890
123456789
Hagamos una distincin entre una cadena que contenga nmeros y un nmero. Un nmero
tiene un valor, pero tambin tiene una presentacin escrita. El valor es algo que estar en el
ordenador como una sucesin de bits. Dependiendo de como lo hayamos declarado, tendr
mas o menos bits. Pero esa informacin no es un nmero legible por el usuario. Lo que s es
legible por el usuario es la representacin en numeracin decimal (u octal, o hexadecimal, o
incluso en binario) de ese nmero. Esa representacin del nmero en un determinado sistema
de numeracin es una cadena.
As, el nmero nueve, que en la memoria del ordenador ser una sucesin de bits, el
ordenador puede presentrnoslo como:
9
9
11
1001
En numeracin decimal
En numeracin hexadecimal
En numeracin octal
En numeracin binaria
Esas formas de presentarnos el nmero son CADENAS de caracteres. El valor del nmero
dentro del ordenador es un NMERO.
Para presentar un nmero en la pantalla, el ordenador debe convertirlo previamente a una
cadena.
Cuando introducimos un valor numrico por teclado o pantalla, el ordenador para hacer
operaciones con l, debe transformarlo a un nmero.
Estas consideraciones nos llevan a las dos primeras funciones con cadenas:
Str
(nmero)
Val
(cadena numrica)
Programacin Digital
50
Ejemplos
Variablenumerica = Val (TextBox1.Text)
Este ejemplo convierte la cadena de caracteres (numricos) que hubiese en la caja de
texto TextBox1 en un nmero, y asocia este nmero a la variable Variablenumerica.
Si el contenido de la caja de textos no fuesen caracteres numrico (abcd, por ejemplo),
Variablenumerica tomara el valor 0.
Label1.Caption = Str (Variablenumerica)
Este ejemplo pondra en la etiqueta Label1 los caracteres correspondientes al valor que
tuviese la variable Variablenumerica .
Nota para recordar: Siempre habr que convertir un nmero a una cadena cuando
queramos presentarlo en la pantalla. Siempre habr que convertir a nmero la cadena de
caracteres numricos que hayamos introducido por teclado o por pantalla, cuando
queramos operar con ese nmero. Un Label, cuando tiene que presentar un nico
nmero, no le pedir que se lo convierta a cadena, pues VB hace automticamente esa
conversin. Sin embargo, cuando tiene que presentar un nmero, y adems un texto en
el mismo Label, VB no realizar automticamente ese cambio, por lo que le dar un error.
Le recomiendo que convierta los nmeros a variables de cadena siempre que los quiera
presentar en un Label o TextBox.
Existe una funcin ms amplia que Str. Se trata de Cstr. Esta funcin no solamente
transforma un nmero a una cadena, como hace Str, sino que convierte cualquier tipo de
variable a una variable tipo String (cadena).
Esta funcin transforma, por ejemplo, una variable tipo Booleana en una variable de cadena,
devolviendo la cadena Verdadero si el valor de la variable booleana es True, y Falso si es
False.
Puede tambin transformar a una cadena de caracteres el valor de un CheckBox o de un
OptionButton. En estos casos devuelve 0 y 1 para el CheckBox (Desactivado / Activado) y
Verdadero Falso para el OptionButton (Activado / Desactivado)
label1.Caption = CStr(booleana)
Label2 = CStr(Check1.Value)
Label2.Caption = 1
Label2.Caption = 0
Label3 = CStr(Option1.Value)
Si se aplica Cstr a una variable tipo Fecha/Hora devuelve la fecha / Hora en formato corto.
Mas funciones de cadena:
Left (cadena, n) Extrae los n primeros caracteres de una cadena, comenzando por la izquierda.
Si cadena = Curso de Visual Basic
---->
Right (cadena, n)
Resultado = Curso de V
---->
Mid (cadena, m, n)
Extrae n caracteres de la cadena, siendo el primer carcter
extrado el que ocupa el lugar m.
(Vea Instruccin Mid mas abajo)
Resultado = Mid (cadena, 3, 10)
---->
LCase (cadena) Devuelve otra cadena igual, pero con todos los caracteres en minsculas.
(LCase = Lower Case)
Resultado = Lcase (cadena)
---->
UCase (cadena) Devuelve otra cadena igual, pero con todos los caracteres en maysculas.
(UCase = Upper Case)
Resultado = UCase (cadena)
---->
---->
Resultado = 21
---->
Resultado = aaaaaaaa
---->
Resultado = AAAAAAAA
---->
Resultado = AAAAAAAA
Space (n)
---->
Resultado = A
LTrim Elimina los posibles espacios que tenga una cadena por su izquierda.
Rtrim Elimina los posibles espacios que tenga una cadena por su derecha.
Trim Elimina los espacios que tenga una cadena, tanto por su izquierda como por su
derecha. (No elimina los espacios centrales de la cadena)
Estas tres funciones se emplean para quitar los posibles espacios que pueden resultar de una
entrada de datos. Tienen especial importancia cuando se toman los datos de un archivo o base
de datos, donde fueron introducidos por otro programa.
No se pone ningn ejemplo de estas funciones, pues sera difcil verlo impreso.
InStr (cadena, cadena1)
---->
Resultado = 12
Programacin Digital
52
Instruccin Mid
Mid puede usarse tambin para cambiar el contenido de una cadena. Observe la sutileza entre
Mid como Funcin de cadena y Mid como Instruccin.
La Instruccin Mid reemplaza un nmero especificado de caracteres en una variable de cadena
con caracteres de otra cadena.
Sintaxis
1.5.8.
Visual Basic puede operar con nmeros tal como lo hara cualquier persona. Conoce las 4
reglas, y puede utilizar parntesis de la misma forma que los escribimos sobre el papel.
Los operadores que utiliza para las operaciones bsicas son:
+
*
/
\
Mod
^
Suma
Resta
Multiplicacin
Divisin
Divisin sin decimales
Resto de una divisin
Eleva a un exponente
Ejemplos
Resultado = 12 + 15
Resultado = 15 - 12
Resultado = 15 * 12
Resultado = 15 / 12
Resultado = 15 \ 12
Resultado = 15 Mod 12
Resultado = 12 ^ 2
Resultado = ( ( 4 * 3 ) / 2 ) ^ 2
---->
---->
---->
---->
---->
---->
---->
---->
Resultado = 27
Resultado = 3
Resultado = 180
Resultado = 1.25
Resultado = 1
resultado = 3
Resultado = 144
Resultado = 36
Igual que
No igual que
Mayor que
Programacin Digital
53
<=
>
=>
Estos operadores se suelen utilizar en estructuras de programa donde se tome una decisin.
El operador = puede usarse tambin para comparar cadenas o fechas.
Operadores Lgicos
Estos operadores slo tienen sentido cuando hablemos de variables Booleanas, es decir,
aquellas que solamente pueden tomar los valores cero y uno.
Operador
Funcin
Devuelve True si
Devuelve False si
And
Funcin AND
A=True y B=True
Or
Funcin OR
A=True o B=True
A=False y B=False
Xor
Funcin XOR
A=True y B=False
A=False y B=True
A=True y B=True
A=False y B=False
Eqv
A=True y B=False
A=False y B=True
Imp
Implicacin
A=True y B=True
A=False y B=True
A=False y B=False
A=True y B=False
Not
Negacin
A=False
A=True
Like
Igualdad
A=True
A=False
Parte entera
Abs
Sgn
Signo
Sqr
Exp
Log
Logaritmo
Sin
Seno
Cos
Coseno
Tan
Tangente
Atn
Arco Tang.
Trigonomtricas
Programacin Digital
54
Randomize Timer
La funcin Randomize devuelve una variable Rnd con un nmero comprendido entre 0
y 1 (Nunca ser 0 ni 1) Leyendo el valor de la variable sucesivas veces, se puede obtener una
sucesin de nmeros aleatorios. No es necesario ejecutar la instruccin Randomize Timer
cada vez que se quiera obtener un dato de la variable Rnd.
Un ejemplo. Generador de nmeros para la Lotera Primitiva
Supongamos que tenemos un formulario con una etiqueta de nombre Label1, un botn de
comando de nombre Command1. Cuando hagamos clic sobre el botn de comando deber
generar un nmero comprendido entre el 1 y el 49. En el procedimiento clic de Command1
pondremos el siguiente cdigo:
Private Sub Command1.click
Randomize Timer
A = Rnd
A = Rnd * 100
A = CInt(A)
Do While A > 49
A = A - 49
Loop
Do While A < 1
A = A + 49
Loop
Label1.caption = A
End Sub
Realice este pequeo programa, con la instruccin Randomize Timer y sin ella.
1.5.9.
Las fechas son cadenas especiales. Visual Basic sabe obtener y tratar la informacin relativa a
la fecha y la hora. Dispone para ello de una declaracin de variable: Date. Una variable
declarada como date puede contener una fecha, una fecha y una hora o una hora solamente.
Programacin Digital
55
Date
Devuelve la fecha de hoy. Esta fecha la toma del reloj del ordenador.
Time
Now
WeekDay
Day
Month
Year
Hour
Minute
Second
DateAdd
DateDiff
DatePart
DateSerial
TimeSerial
DateValue
Mediante estas instrucciones podemos obtener el dato necesario de una fecha u hora. Por
ejemplo, para obtener el da de hoy solamente:
Da = Day (Now)
Da ser un nmero
El da de la semana lo obtendramos
Diasemana = WeekDay (Now)
Fecha =12/07/96
Programacin Digital
56
Lo mejor que puede hacer con esta definicin de la sintaxis de Format es olvidarla. No le aclara
mucho lo que se puede hacer con Format. La funcin Format se usa para poner una fecha en
un determinado formato. Con la expresin:
FechadeHoy = Format (Now, yyyy-mm-dd)
la variable FechadeHoy tendr el valor 1998-05-21, que se refiere al da 21 de mayo de 1998,
segn el formato recomendado por la norma ISO-8601 para la presentacin de fechas. Si
hubisemos puesto la expresin FechadeHoy = Format (Now, dd/mm/yy) , la variable
FechadeHoy contendra el valor 21/05/98 referido al da citado.
Las posibilidades de Format llegan tambin al campo de las cadenas numricas. Por ejemplo la
cifra 123456 se transformar en las siguientes expresiones, segn como empleemos la funcin
Format
Variable = Format(123456, "Currency")
Variable = Format(123456, "Standard")
Valor
Descripcin
vbUseSystem
VbSunday
vbMonday
vbTuesday
vbWednesday
vbThursday
vbFriday
vbSaturday
0
1
2
3
4
5
6
7
firstweekofyear Especfica cual es la primera semana del ao. Puede tomar uno de los
siguientes valores o constantes:
Constante
Valor
Descripcin
vbUseSystem
vbFirstJan1
por defecto
vbFirstFourDays
0
1
vbFirstFullWeek
No se complique la vida con el tema del primer da de la semana ni la primera semana del ao.
No lo usar con frecuencia. Centrmonos ms en el parmetro Formato. Puede tomar muchos
valores. Veamos los principales. Primero para nmeros
Observe que usamos la expresin Variable =Format (1234567,Formato) para todos los
ejemplos de nmeros.
Programacin Digital
57
Variable = 1.234.567
(Cada carcter # indica que ah va un nmero. El separador debe ser una coma, no un punto,
aunque esto depende del idioma que est usando)
Puede poner una de estas expresiones, eso si, siempre entre comillas dobles:
General Number
Muestra el nmero tal como lo tecle
Currency
En formato de la moneda de su sistema operativo
Fixed
Sin separador de millar y dos decimales (1234567,00)
Standard
Con separador de millares y dos decimales (1.234.567,00)
Percent
Multiplica el nmero por cien y lo presenta cono porcentaje (123456700,00%)
Scientific
Usa notacin cientfica (1,23E+06)
.
Para fechas (Observe que usamos el ejemplo Format(Now, Formato) y Now = 21/07/98
a las 22:16:00 y pico)
General Date
Long Date
Medium Date
Short Date
yyyy-mm-dd
yy-mm-dd
Long Time
Medium Time
Short Time
hh :mm :ss
hh :mm
21/07/98 22:16:00
martes 21 de julio de 1998
21-jul-98
21/07/98
1998-05-21
98-07-21
22:19:53
10:20 PM
22:20
22 :21 :29
22 :21
Format dispone de ms opciones. Sera muy largo explicarlas aqu. Para ms informacin, en
la Web de Microsoft puede encontrar ms formatos posibles.
1.5.11. MATRICES.
Cuando utilizamos varias variables que tienen un significado similar para nosotros, pero que
son distintas (Por ejemplo, el nombre de los alumnos de una clase) podemos utilizar una
matriz. Esta matriz est formada por tantos elementos como alumnos tenga la clase. El nombre
asociado a cada uno de los elementos de la matriz puede ser:
Alumno (n)
Las matrices normalmente comienzan a numerar por el nmero 0. Este comienzo puede no ser
el mas apropiado para la variable que estamos planteando, pues ningn alumno tiene el
nmero de orden 0. Para hacer que una matriz comience a numerar por el 1 se debe definir
mediante la instruccin:
Option Base 1
que debe colocarse al comienzo del mdulo o formulario donde declaremos la matriz.
Para declarar la matriz se hace como con todas las variables, especificando entre parntesis el
nmero de elementos que componen la matriz:
Dim Alumno (25) as String
Hemos declarado que la variable alumno es una cadena, y que hay 25 elementos en esa
matriz.
Programacin Digital
58
Dim MiMatriz (1 To 5, 1 To 9)
59
y volver a cambiarlas
Observe que no solamente la hemos cambiado dos veces de dimensiones (la primera a 2 y la
segunda a 3), sino que tambin hemos cambiado el nmero de elementos en cada dimensin.
Si hubisemos utilizado ReDim Preserve solamente podramos haber usado la primera de las
dos lneas anteriores:
ReDim Preserve MiMatriz (1 To 5, 1 To 9)
Pero ya no podramos volver a cambiar el nmero de dimensiones con la segunda lnea. Nos
dara un error.
Con ReDim podemos cambiar el nmero de elementos de cada dimensin cuantas veces
queramos. Por ejemplo, podemos redimensionar MiMatriz de las siguiente forma :
ReDim MiMatriz (1 To 5, 1 To 9)
ReDim MiMatriz (1 To 15, 1 To 20)
ReDim MiMatriz (1 To 25, 1 To 30)
...........................
Si hubisemos empleado ReDim Preserve, podramos cambiar los elementos de todas las
dimensiones de la matriz una vez:
ReDim Preserve (1 To 5, 1 To 9)
a partir de ahora, solamente podemos cambiar los elementos de la ltima dimensin :
ReDim Preserve (1 To 5, 1 To 20)
ReDim Preserve (1 To 5, 1 To 30)
es decir, no podremos hacer esto :
ReDim Preserve (1 To 10, 1 To 30)
Esto no causa ningn error en una matriz de una dimensin, ya que si la matriz tiene slo una
dimensin, puede cambiar el tamao de esa dimensin porque es la nica y la ltima.
Cuando a lo largo de la aplicacin se va redimensionando una matriz, podemos llegar la
circunstancia de que, en un momento determinado, no sepamos las dimensiones de esa
matriz.
Para conocer el ndice mximo y mnimo de una matriz se usan las funciones UBound y
LBound.
UBound devuelve el mayor subndice disponible para la dimensin indicada de una matriz.
Sintaxis
UBound(nombredelamatriz[, dimensin])
LBound devuelve el mayor subndice disponible para la dimensin indicada de una matriz.
Sintaxis
LBound(nombredelamatriz[, dimensin])
60
Programacin Digital
IID1 = 1
ISD1 = 100
IID1 = 0
ISD1 = 3
IID1 = 5
ISD1 = 20
61