Visual Basic PDF
-
Upload
pedro-pablo-torres -
Category
Documents
-
view
74 -
download
7
Transcript of Visual Basic PDF
-
CAPTULO 1
FUNDAMENTOS
Microsoft Visual Basic es un conjunto de herramientas que
posibilitan el desarrollo de aplicaciones para Windows de una
manera rpida y sencilla, basado en el lenguaje BASIC y en la
programacin orientada a objetos.
La palabra Visual hace referencia al mtodo que se
utiliza para crear la interfaz grfica de usuario. En lugar de
escribir numerosas lneas de cdigo para implementar la
interfaz, simplemente se utiliza el ratn para agregar objetos
prefabricados en el lugar deseado dentro de la pantalla.
La palabra Basic hace referencia al lenguaje BASIC
(Beginners All-Purpose Symbolic Instruction Code), un lenguaje
utilizado por ms programadores que ningn otro lenguaje en la
historia de la informtica. Visual Basic ha evolucionado a
partir del lenguaje BASIC original y ahora contiene centenares
de instrucciones, funciones y palabras clave, muchas de las
cuales estn directamente relacionadas con la interfaz grfica
de Windows.
El lenguaje de programacin Visual Basic no es exclusivo
de Microsoft Visual Basic. Este lenguaje es utilizado tambin
por Microsoft Excel, Microsoft Access y muchas otras
Pg. 1
-
aplicaciones Windows. El lenguaje de programacin Visual Basic
Script para programar en Internet es un subconjunto del
lenguaje Visual Basic. De tal forma, que la inversin realizada
en el aprendizaje de Visual Basic le ayudar a abarcar estas
otras reas.
EJECUTANDO VISUAL BASIC
Si ya tiene instalado Visual Basic, para ejecutarlo
proceda igual que con cualquier otra aplicacin Windows: hacer
click en el icono correspondiente.
En seguida se presentar una ventana similar a la figura
siguiente:
Pg. 2
-
En la ventana anterior indicar el tipo de proyecto que
desea crear (para nuestro caso seleccionar EXE estndar) y dar
click sobre el botn Abrir. En ese instante se presentar el
Entorno Integrado de Desarrollo (IDE) de Visual Basic:
Los elementos que componen el IDE de Visual Basic son:
Barra de mens Barra de herramientas Cuadro de herramientas Diseador de formularios Explorador de proyectos Ventana de propiedades Posicin del formulario Mens contextuales Barra de mens
Pg. 3
-
Presenta las rdenes que se utilizan para desarrollar una
aplicacin. Las opciones ms utilizadas son: Archivo, Edicin,
Ver, Ventana y Ayuda. Se proporcionan otros mens para tener
acceso a funciones especficas de programacin como Proyecto,
Formato o Depuracin.
Barra de herramientas Facilita el acceso rpido a las rdenes ms comnmente
utilizadas. Omitimos el significado de cada botn porque le
ser mostrado al pasar el puntero del ratn sobre cada uno de
ellos.
Puede visualizar otras barras de herramientas ejecutando
la opcin Barra de herramientas del Men Ver.
Cuadro de herramientas
Proporciona un conjunto de herramientas que permiten
disear la interfaz grfica de usuario.
Pg. 4
-
Icono Descripcin
Puntero
Cuadro de imagen
Etiqueta
Cuadro de texto
Marco
Botn de comando
Casilla de verificacin
Botn de opcin
Cuadro combinado
Cuadro de lista
Barra de desplazamiento horizontal
Barra de desplazamiento vertical
Cronmetro
Cuadro de lista de unidades
Cuadro de lista de directorios
Cuadro de lista de archivos
Formas
Lneas
Imagen
Contenedor OLE
Pg. 5
-
Para utilizar algn objeto simplemente debe hacer doble
click sobre el icono correspondiente, luego puede cambiar su
posicin y sus dimensiones.
Diseador de formularios Es la ventana sobre la que colocaremos los objetos
(controles) de la interfaz de usuario.
Explorador de proyectos Contiene el conjunto de archivos que constituyen la
aplicacin o proyecto.
Pg. 6
-
Ventana de propiedades Como veremos ms adelante, cada objeto lleva asociado un
conjunto de propiedades. Para ver o especificar los valores de
las propiedades de los objetos, utilizaremos la ventana de
propiedades.
Posicin del formulario Esta ventana le permite especificar la posicin de los
formularios de la aplicacin.
Mens contextuales
Pg. 7
-
Es un men emergente que presenta rdenes especficas
relativas a un determinado objeto. Para abrir un men
contextual, dar click derecho sobre el objeto. Por ejemplo, al
dar click derecho sobre el formulario se presenta el siguiente
men contextual.
Ventana de cdigo Se presenta cuando se hace doble click sobre un objeto que
se encuentra en el Diseador de formularios. Esta ventana
muestra dos cuadros combinados (combos) en la parte superior,
en una aparece el nombre del objeto (izquierda) y en la otra el
nombre del evento (derecha).
Pg. 8
-
MI PRIMERA APLICACIN
Hay tres pasos principales para crear una aplicacin en
Visual Basic:
Crear la interfaz. Establecer propiedades. Escribir el cdigo.
Para ver como se realiza esto, siga los pasos del
siguiente ejemplo para crear una aplicacin sencilla que
consiste en un formulario y un botn de comando. Cuando haga
click en el botn de comando aparecer el mensaje Visual Basic
es fcil en un cuadro de dilogo predefinido.
Creacin de la interfaz
Para el desarrollo del presente ejemplo proceda a crear
una nueva aplicacin. En seguida aadir un botn de comando al
formulario, para ello en el Cuadro de herramientas, dar doble
click sobre el control deseado, tal como se indica en la figura
siguiente:
Pg. 9
-
La apariencia de la interfaz debe ser similar a la figura
mostrada:
Estableciendo las propiedades
Para ver las propiedades de un objeto, simplemente debe
seleccionarlo y pulsar la tecla F4. Por ejemplo la figura
siguiente muestra las propiedades del botn de comando y
podemos ver que la propiedad Caption tiene el valor Command1.
Pg. 10
-
Puede cambiar el valor de cualquier propiedad
seleccionndolo de la ventana anterior y simplemente
modificando su valor, por ejemplo para el caso anterior
establezca el valor de la propiedad Caption de Command1 a
Haga click aqu.
De manera similar proceda cambiar la propiedad Caption del
formulario a Mi primera aplicacin. La apariencia de la
interfaz debe ser similar a la figura mostrada:
Pg. 11
-
Escribiendo el cdigo Para ingresar el cdigo a la aplicacin debe dar doble
click sobre el control al cual asociaremos dicho cdigo. Para
nuestro caso dar doble click sobre el botn de comando e
ingresar el cdigo que se indica a continuacin:
Para guardar la aplicacin que acaba de crear, seleccione
la opcin Guardar Proyecto del Men Archivo.
Bueno, ahora slo falta que ejecute su aplicacin. Para
ello simplemente debe pulsar la tecla F5. El resultado debe ser
similar al siguiente:
Pg. 12
-
CAPTULO 2
LOS OBJETOS
Visual Basic se basa en la programacin orientada a
objetos (POO), la cual es una forma de programacin que utiliza
objetos (similares a los objetos del mundo real) para la
solucin de problemas. La POO permite descomponer un problema
en bloques relacionados. Cada bloque pasa a ser un objeto
autocontenido que contiene sus propios datos e instrucciones.
De esta manera, la complejidad se reduce y se pueden realizar
programas ms largos de una manera sencilla.
MECANISMOS BSICOS DE LA POO
Los mecanismos bsicos de la programacin orientada a
objetos son:
Objetos Propiedades Mtodos Eventos Mensajes Clases
Pg. 13
-
Objetos Un objeto es una entidad que tiene atributos particulares
(propiedades) y unas formas de operar sobre ellos (mtodos).
Por tanto, un objeto contiene variables que especifican su
estado y operaciones que definen su comportamiento.
Son ejemplos de objetos: formularios, botones de comando,
cuadros de texto, etiquetas, etc.
Propiedades
Las propiedades representan las caractersticas del
objeto. Hay propiedades particulares, como Caption que la
poseen los botones de comando por ejemplo, y genricas como
Name que la poseen todos lo objetos.
Mtodos
Los mtodos son procedimientos asociados a un objeto. Se
ejecutan como respuesta a un evento, por ejemplo al dar click
en un botn de comando. Tambin pueden ser invocados
explcitamente en el programa.
Eventos
Un evento es la capacidad de un objeto de reaccionar
cuando ocurre una determinada accin (accin y reaccin). Como
respuesta a un evento se enva un mensaje y se ejecuta un
determinado mtodo (procedimiento).
Pg. 14
-
Mensajes Un mensaje es una llamada a un mtodo (procedimiento), de
tal forma que cuando un objeto recibe un mensaje la respuesta a
ese mensaje es ejecutar el procedimiento asociado.
Cuando se ejecuta un programa orientado a objetos, los
objetos estn constantemente recibiendo, interpretando y
respondiendo a mensajes de otros objetos.
Clases Una clase es una descripcin para producir objetos de esa
clase o tipo. Es decir se trata de una generalizacin de un
tipo especfico de objetos. En otras palabras, un objeto es una
variable del tipo definido por una clase. Por ejemplo, piense
en un molde para hacer pasteles, el molde es la clase y los
pasteles los objetos.
CARACTERSTICAS DE LA POO
Las caractersticas fundamentales de la programacin
orientada a objetos son:
Abstraccin Encapsulamiento Herencia Polimorfismo
Pg. 15
-
Abstraccin La abstraccin permite no detenernos en los detalles
concretos del funcionamiento de las cosas, sino centrarnos en
los aspectos que realmente nos importan y nos son tiles en un
determinado momento, en cierta medida, se podra decir que es
sese el objeto y olvdese de como funciona en forma interna.
Por ejemplo, para manejar una computadora no necesitamos
saber como funcionan sus circuitos electrnicos, en trminos de
corriente, tensin, etc.
Encapsulamiento Esta caracterstica permite ver un objeto como una caja
negra autocontenida en la que se ha metido de alguna manera
toda la informacin que maneja dicho objeto. Esto permite
manipular los objetos como unidades bsicas, permaneciendo
oculta su estructura interna.
Herencia La herencia es la caracterstica que permite compartir
automticamente propiedades y mtodos entre objetos. Es decir,
se pueden crear nuevas clases de objetos en base a clases
existentes. Ms concreto, un objeto puede heredar un conjunto
general de propiedades y mtodos a las que puede aadir
Pg. 16
-
aquellas caractersticas que son especficas suyas. El usuario
de Visual Basic no dispone de esta caracterstica.
Polimorfismo Polimorfismo, del griego cuyo significado es muchas
formas, es la caracterstica que permite implementar mltiples
formas de un mismo mtodo, dependiendo cada una de ellas de la
clase sobre la que se realiza la implementacin. Esto hace
posible que se puede acceder a una variedad de mtodos
distintos (todos con el mismo nombre) utilizando exactamente el
mismo medio de acceso.
LOS OBJETOS DE VISUAL BASIC
Visual Basic soporta la abstraccin, la encapsulacin, el
polimorfismo y la reutilizacin de cdigo.
La reutilizacin de cdigo es la capacidad de trasladar
caractersticas de un objeto a otro, lo que se logra con alguna
forma de herencia. Esto se consigue mediante la creacin y uso
del objeto.
Los objetos de Visual Basic estn divididos en dos tipos:
controles y contenedores.
Los controles son un medio grfico que permiten a los
usuarios interactuar con la aplicacin para la manipulacin de
datos y ejecucin de tareas. Son ejemplo de controles:
etiquetas, cuadros de texto, botones de comando, casillas de
Pg. 17
-
verificacin, botones de opcin, cuadros de lista, cuadros
combinados, etc.
Los contenedores son objetos que pueden incluir otros
objetos y permiten el acceso a los objetos que contienen. Entre
los ms utilizados tenemos a los formularios, marcos y
cuadrculas.
El formulario ms los controles constituyen la interfaz de
la aplicacin.
REFERENCIANDO OBJETOS
La sintaxis para referenciar objetos es la siguiente:
OBJETO.PROPIEDAD = VALOR
Por ejemplo, para establecer el ttulo de un formulario a
Visual Basic es fcil, la orden sera:
Form1.Caption = Visual Basic es fcil
LOS EVENTOS
Cada objeto responde a un conjunto de eventos. Como
respuesta a un evento se ejecuta un determinado procedimiento.
Los procedimientos asociados a un evento presentan la forma:
Private Sub OBJETO_EVENTO()
SENTENCIAS
End Sub
Pg. 18
-
Para aclarar este concepto desarrollaremos la siguiente
aplicacin, la cual consiste en un formulario, un cuadro de
texto y un botn de comando. El usuario debe ingresar un
mensaje en el cuadro de texto y al pulsar el botn de comando,
el mensaje recientemente ingresado, se coloca como ttulo del
formulario.
Para ello proceda a construir la interfaz mostrada en la
figura anterior. Luego, dar doble click sobre el botn de
comando e ingrese el siguiente cdigo:
Private Sub Command1_Click()
Form1.Caption = Text1.Text
End Sub
Seguidamente guarde y proceda ejecutar su aplicacin. Como
puede verificar, el evento Click se dispara cada vez que el
usuario pulsa (hace click) sobre un control.
CONVENCIN DE NOMBRES PARA LOS OBJETOS
Pg. 19
-
La convencin a seguir en la presente gua - para dar
nombre a los objetos - consiste en utilizar ciertos prefijos,
los cuales indicaran el tipo de objeto del que se trata.
Prefijo Objeto Frm Formulario
Fra Marco
Lbl Etiqueta
Txt Cuadro de texto
Cmd Botn de comando
Chk Casilla de verificacin
Opt Botn de opcin
Lst Cuadro de lista
Cbo Cuadro combinado
Tim Cronmetro
HS Barra de desplazamiento horizontal
VS Barra de desplazamiento vertical
Pic Cuadro de imagen
Img Imagen
Drv Cuadro de lista de unidades
Dir Cuadro de lista de directorios
Fil Cuadro de lista de archivos
Ole Contenedor OLE
Grd Cuadrcula
Pg. 20
-
Gra Grfico
Ctr Control (se utiliza en procedimientos cuando
el tipo de control es desconocido)
CAPTULO 3
EL LENGUAJE
Visual Basic es un lenguaje de programacin basado en el
lenguaje BASIC, al cual incorpora la funcionalidad de la
programacin orientada a objetos.
El cdigo de Visual Basic se almacena en mdulos, donde
cada mdulo est subdividido en distintas secciones, una para
cada objeto del mdulo. Cada seccin de cdigo puede contener
uno o ms procedimientos, formados por declaraciones de
constantes y variables, expresiones, sentencias de control y
llamadas a procedimientos y/o funciones.
En este captulo vamos a analizar los diferentes elementos
que intervienen al momento de realizar el cdigo para una
aplicacin.
TIPOS DE DATOS
Pg. 21
Los datos con los que trabajaremos probablemente incluyan
informacin relacionada con nmeros, dinero, nombres,
-
descripciones, fechas, etc. Cada dato corresponde a un
determinado tipo, es decir, pertenece a una categora de datos
que se manipulan de maneras similares.
Tipo Descripcin Rango Integer Entero (2 bytes) -32768 a 32767
Long Entero largo (4 bytes) -2147483648 a
2147483647
Single Punto flotante de simple
precisin (4 bytes)
-3.40E+38 a
3.40E+38
Double Punto flotante de doble
precisin (8 bytes)
-1.79D+308 a
1.79D+308
Currency Monetario (8 bytes) +/-
922337203685477.5807
Byte Carcter (1 byte) 0 a 255
String Cadena de caracteres (1
byte por carcter)
Aproximadamente
hasta 64K (65400
caracteres)
Boolean Lgico (2 bytes) True o False
Date Fecha/Hora (8 bytes) 01/ENERO/100 a
31/DICIEMBRE/9999
Variant
(por omisin)
Cualquier tipo de dato Con nmeros hasta el
intervalo de un tipo
Double.
Con caracteres 22
Pg. 22
-
bytes + 1 byte por
carcter
IDENTIFICADORES
Los identificadores son nombres dados a los elementos de
una aplicacin, tales como constantes, variables,
procedimientos, funciones, objetos, etc. Un identificador es
una secuencia de caracteres que puede ser de hasta 255
caracteres. Para la construccin de identificadores debemos
tener presente las siguientes reglas:
Deben comenzar con una letra y no puede contener espacios en blanco.
Letras, dgitos y caracteres subrayados estn permitidos despus del primer carcter.
No se puede utilizar una palabra reservada como identificador. Una palabra reservada tiene un significado
especial para Visual Basic.
CONSTANTES
Una constante almacena un dato cuyo valor no cambia
durante la ejecucin de un programa. Para declarar una
constante utilice la siguiente sintaxis:
Const NOMBRE_CONSTANTE [As TIPO] = VALOR
Pg. 23
-
Si no se declara el tipo de constante (utilizando As TIPO)
se asigna a la constante el tipo de dato ms apropiado a su
valor.
El valor de una constante puede ser numrico,
alfanumrico, carcter o de tipo fecha y hora. Por ejemplo:
Const MAXIT = 25
Const PI As Double = 3.141592
Const CADENA As String = Visual Basic es fcil
Const FECHA_POR_DEFECTO = #01/01/99#
VARIABLES
Una variable almacena un dato cuyo valor puede cambiar
durante la ejecucin de un programa. Para declarar una variable
utilice la siguiente sintaxis:
Dim NOMBRE_VARIABLE [As TIPO]
Cuando se declara una variable y no se especifica su tipo
(con As TIPO), se asume que es de tipo Variant.
La instruccin Dim puede realizar ms de una declaracin,
teniendo en cuenta que la clusula opcional As TIPO le permite
definir el tipo de dato de cada variable que vaya a declarar.
Por ejemplo:
Dim X, Y As Integer
Pg. 24
-
La sentencia anterior le puede inducir a pensar que X e Y
son de tipo Integer, lo cual no es cierto, pues X es de tipo
Variant (por omisin) e Y es de tipo Integer.
Para asignar valores a una variable, utilizar la siguiente
sintaxis:
NOMBRE_VARIABLE = VALOR
A manera de ejemplo considere lo siguiente:
Dim CANTIDAD As Integer, PRECIO As Double, TOTAL As Double
CANTIDAD = 30
PRECIO = 1.5
TOTAL = CANTIDAD * PRECIO
OPERADORES
Los operadores son smbolos que indican cmo sern
manipulados los operandos. Los operandos son los datos
(constantes y/o variables) sobre los que acta los operadores
para producir un determinado resultado.
Operadores aritmticos
Operador Significado ^ Exponenciacin
- Menos unario
Pg. 25
-
* / Multiplicacin y divisin
\ Divisin entera
Mod Resto de una divisin entera
+ - Suma y resta
Operadores relacionales
Operador Significado = Igual que
Diferente que < Menor que > Mayor que Mayor o igual que
Operadores lgicos
Operador Significado Not Negacin
And Conjuncin
Or Disyuncin inclusiva
Xor Disyuncin exclusiva
Eqv Equivalencia (opuesto a Xor)
Imp Implicacin (falso si primer operando
verdadero y segundo operando falso)
Pg. 26
-
Operadores de cadenas de caracteres
Operador Significado
& Concatenacin
Like Compara dos cadenas de caracteres
SENTENCIAS
Una sentencia es una lnea de cdigo que indica una o ms
operaciones a realizar. Una lnea puede incluir varias
sentencias, separadas unas de otras por dos puntos. Por
ejemplo:
Dim CANTIDAD As Integer, PRECIO As Double, TOTAL As Double
CANTIDAD = 30 : PRECIO = 1.5 : TOTAL = CANTIDAD * PRECIO
Una sentencia Visual Basic puede escribirse en ms de una
lnea fsica utilizando el carcter de continuacin de lnea
(un espacio en blanco seguido del carcter de subrayado). Por
ejemplo:
Dim CH4_ENTRADA As Double, CH4_SALIDA As Double, _
CH4_GENERA As Double, CH4_CONSUME AS Double
ENTRADA Y SALIDA DE DATOS
Visual Basic posee una serie de objetos (controles) que
pueden ser utilizados como mecanismos de entrada y salida (E/S)
de datos. Sin embargo, estos sern estudiados en captulos
posteriores.
Pg. 27
-
Otra posibilidad de proporcionar datos o de visualizarlos
durante la ejecucin de una aplicacin es utilizando cajas de
dilogos predefinidas. Debido a que esta es la forma ms simple
de realizar la E/S de datos nos ocuparemos de ella.
Entrada de datos La entrada de datos permite proporcionar valores durante
la ejecucin de una aplicacin. Estos valores son ingresados
generalmente mediante el teclado y asignados a variables del
programa. En Visual Basic una forma de ingresar datos a la
aplicacin es utilizando la caja de dilogo predefinida
provista por la funcin InputBox. Su sintaxis es la siguiente:
VARIABLE = InputBox(MENSAJE [, TTULO] [, PREDETERMINADO])
Donde MENSAJE es el mensaje que indica al usuario el tipo
de informacin que debe ingresar. Por ejemplo, las sentencias:
Dim EDAD As Integer
EDAD = InputBox(Ingrese su edad?)
Da lugar a que Visual Basic presente la siguiente caja de
dilogo solicitando la informacin requerida:
Pg. 28
-
Como puede observar, el resto de los parmetros son
opcionales. TTULO es el texto que se muestra en la barra de
ttulo del cuadro de dilogo, si se omite TTULO, el nombre de
la aplicacin es la que se muestra en la barra de ttulo.
PREDETERMINADO es una expresin de cadena que aparece en el
cuadro de texto como respuesta predeterminada si no se
proporciona ningn otro texto. Si se omite PREDETERMINADO el
cuadro de texto se muestra vaco. A manera de ejemplo considere
lo siguiente:
Dim EDAD As Integer
EDAD = InputBox(Ingrese su edad?, Ficha de datos, 18)
En este caso se visualiza la caja de dilogo que se
presenta en la figura siguiente:
Pg. 29
-
Salida de datos La salida de datos generalmente consiste en tomar la
informacin de la memoria y mostrarla en pantalla. Para
realizar la operacin de salida de datos en Visual Basic,
podemos utilizar el procedimiento MsgBox, cuya sintaxis es como
sigue:
MsgBox MENSAJE [, ICONO, TTULO]
MENSAJE es La cadena que se muestra como salida en la caja
de dilogo. ICONO es se refiere al estilo de icono que se va ha
utilizar y TTULO es una texto que se mostrar en la barra de
ttulo de la caja de dilogo. Por ejemplo:
Dim EDAD As Integer EDAD = InputBox(Ingrese su edad?) EDAD = EDAD + 10
MsgBox Dentro de 10 aos su edad ser: & Str(EDAD)
Si ejecuta el cdigo anterior e ingresa su edad (en mi
caso 29 aos) la salida debe ser similar a la figura siguiente:
Pg. 30
-
Para que pueda ejecutar el cdigo anterior, proceda a
crear una nueva aplicacin y haga doble click sobre el
formulario, luego ingrese el cdigo anterior:
Private Sub Form_Load()
Dim EDAD As Integer EDAD = InputBox(Ingrese su edad?) EDAD = EDAD + 10
MsgBox Dentro de 10 aos su edad ser: & Str(EDAD)
End Sub A manera de observacin cabe sealar que la funcin Str()
se utiliza para convertir una expresin numrica a una cadena
de caracteres.
ESTRUCTURAS DE CONTROL
Las estructuras de control permiten tomar decisiones y
realizar un proceso repetidas veces (procesos iterativos). Para
ello Visual Basic dispone de las siguientes estructuras de
control: If . . . Then . . . Else, If . . . Then . . . ElseIf,
Select Case, For . . . Next, While . . . . Wend, Do . . . Loop
y GoTo.
Estructura If . . . Then . . . Else Este tipo de estructura evala una determinada condicin y
en funcin a ello ejecuta uno de entre dos posibles grupos de
sentencias. Su sintaxis es la siguiente:
Pg. 31
-
If CONDICIN Then
SENTENCIAS_VERDADERAS
Else
SENTENCIAS_FALSAS
End If
Si CONDICIN es verdadera se ejecuta el grupo de
SENTENCIAS_VERDADERAS. Si CONDICIN es falsa se ejecuta el
grupo de SENTENCIAS_FALSAS.
Por ejemplo, el siguiente cdigo determina si un entero A
es o no divisible por otro entero B:
Dim A As Integer, B As Integer
A = InputBox(Ingrese A?)
B = InputBox(Ingrese B?)
If A Mod B = 0 Then
MsgBox Str(A) & es divisible por & Str(B)
Else
MsgBox Str(A) & no es divisible por & Str(B)
End If
Estructura If . . . Then . . . ElseIf Este tipo de estructura se utiliza para elegir una de
entre mltiples alternativas. Su sintaxis es como sigue:
If CONDICIN_1 Then
Pg. 32
-
SENTENCIAS_1
ElseIf CONDICIN_2 Then
SENTENCIAS_2
.
.
.
Else
SENTENCIAS_FALSAS
End If Si CONDICIN_1 es verdadera se ejecuta el grupo de
SENTENCIAS_1, y si es no se cumple, se evalan secuencialmente
las condiciones siguientes hasta Else, ejecutndose las
sentencias correspondientes al primer ElseIf cuya condicin sea
verdadera. Si todas las condiciones son falsas, se ejecutan las
SENTENCIAS_FALSAS correspondientes a Else.
Por ejemplo considere el siguiente cdigo, el cual imprime
el nombre del mes correspondiente a los nmeros del 1 al 12.
Dim N As Integer N = InputBox(Ingrese N?)
If N = 1 Then MsgBox Enero
ElseIf N = 2 Then : MsgBox Febrero ElseIf N = 3 Then : MsgBox Marzo ElseIf N = 4 Then : MsgBox Abril ElseIf N = 5 Then : MsgBox Mayo
Pg. 33
-
ElseIf N = 6 Then : MsgBox Junio ElseIf N = 7 Then : MsgBox Julio ElseIf N = 8 Then : MsgBox Agosto ElseIf N = 9 Then : MsgBox Setiembre ElseIf N = 10 Then : MsgBox Octubre ElseIf N = 11 Then : MsgBox Noviembre ElseIf N = 12 Then : MsgBox Diciembre Else : MsgBox Error de datos End If
Estructura Select Case Este estructura es una alternativa a la estructura
If . . . Then . . . ElseIf, cuando lo que necesita es comparar
la misma expresin con diferentes valores. Su sintaxis es la
siguiente:
Select Case EXPRESIN_TEST
Case EXPRESIN_1
SENTENCIAS_1
Case EXPRESIN_2
SENTENCIAS_2
.
.
.
Case Else
SENTENCIAS_FALSAS
End Select
Pg. 34
-
En este caso se comprueba el valor de EXPRESIN_TEST
frente a la lista expresiones EXPRESIN_1, EXPRESIN_2, . . . y
as sucesivamente, y busca el primer Case que incluya el valor
evaluado en EXPRESIN_TEST, ejecutando a continuacin el bloque
de sentencias correspondiente. Si no existe un valor igual a
EXPRESIN_TEST, entonces se ejecuta las SENTENCIAS_FALSAS
correspondientes al Case Else.
A manera de ejemplo vamos a codificar el programa de la
seccin anterior el cual imprime el nombre del mes
correspondiente a los nmeros del 1 al 12. Pero en esta vez
utilizaremos la estructura Select Case (compare con cual de
ambas estructuras es ms cmodo trabajar).
Dim N As Integer
N = InputBox(Ingrese N?)
Select Case N
Case 1 : MsgBox Enero
Case 2 : MsgBox Febrero
Case 3 : MsgBox Marzo
Case 4 : MsgBox Abril
Case 5 : MsgBox Mayo
Case 6 : MsgBox Junio
Case 7 : MsgBox Julio
Case 8 : MsgBox Agosto
Case 9 : MsgBox Setiembre
Pg. 35
-
Case 10 : MsgBox Octubre
Case 11 : MsgBox Noviembre
Case 12 : MsgBox Diciembre
Case Else
MsgBox Error de datos
End Select
Cabe destacar que Select Case tambin se puede utilizar de
la siguiente manera:
Dim X As Integer
X = InputBox(Ingrese X?)
Select Case X
Case 1
MsgBox X = 1
Case 2, 3
MsgBox X = 2 o X = 3
Case 4 To 10
MsgBox 4
-
ser conocido de antemano. Su sintaxis es la que se presenta a
continuacin:
For CONTADOR = INICIO To FINAL [Step INCREMENTO/DECREMENTO]
SENTENCIAS_REPETITIVAS
[Exit For]
Next
Donde la variable CONTADOR es inicializada con el valor de
INICIO y se incrementa o decrementa hasta un valor FINAL.
INCREMENTO/DECREMENTO define la manera en que cambia el valor
de la variable CONTADOR en cada iteracin.
La sentencia Exit For permite salir del bucle For . . . Next
antes de que este finalice.
Por ejemplo, el siguiente cdigo imprime los cuadrados de
los nmeros enteros del 1 al 25.
Dim C As Integer
For C = 1 To 25
Print C
Next
Para que este cdigo funcione correctamente debe
establecer la propiedad AutoRedraw del formulario a True.
Estructura While . . . Wend
Pg. 37
La estructura While . . . Wend es aquella en la que el
nmero de iteraciones no se conoce por anticipado y el cuerpo
-
del bucle se repite mientras se cumple una determinada
condicin. Su sintaxis es la siguiente:
While CONDICIN
SENTENCIAS_REPETITIVAS
Wend
La estructura While . . . Wend evala la CONDICIN en cada
iteracin y si el resultado es verdadero contina su ejecucin.
El bucle termina cuando CONDICIN es falsa.
A manera de ejemplo, considere el siguiente cdigo, el
cual imprime en pantalla la suma de los primeros nmeros
naturales, es decir = 1 + 2 + 3 + 4 + . . . +
N
S N
Dim N As Integer, S As Integer
S = 0
N = InputBox(Ingrese N?)
While N 0 S = S + N
N = N - 1
Wend
MsgBox La suma es S= & Str(S)
Estructura Do . . . Loop Esta estructura ejecuta un bucle mientras una condicin
dada sea cierta, o hasta que una condicin dada sea cierta. La
Pg. 38
-
condicin puede ser verificada antes o despus de ejecutarse el
cuerpo del bucle. Su sintaxis es:
Formato 1: Do [While/Until] CONDICIN
SENTENCIAS_REPETITIVAS
[Exit Do]
Loop Formato 2: Do
SENTENCIAS_REPETITIVAS
[Exit Do]
Loop [While/Until] CONDICIN
Esta estructura (como se puede observar en ambos formatos)
permite realizar varias estructuras diferentes dependiendo si
la condicin de terminacin est al principio o al final del
cuerpo del bucle.
Como ejemplo, consideremos el siguiente programa, el cual
calcula el factorial de un entero ingresado por teclado: N
Dim N As Integer, FACT As Integer, C As Integer
FACT = 1
C = 1
N = InputBox(Ingrese N?)
Do
FACT = FACT * C
C = C + 1
Pg. 39 Loop While C
-
MsgBox El factorial de & Str(N) & es= & Str(FACT)
Sentencia GoTo Transfiere el control a una lnea especfica de cdigo,
identificada por una etiqueta o por un nmero de lnea. Su
sintaxis es:
GoTo ETIQUETA/NUMERO_LNEA
Aunque el uso del GoTo se ha depreciado considerablemente,
en el presente trabajo no se juzgar su validez. Sin embargo,
se ha establecido que no hay situaciones de programacin que
requieran el uso del GoTo, es decir, no es un elemento
necesario para hacer completo el lenguaje.
Sin embargo, el GoTo es un convenio que, si su usa con
cuidado, puede ser beneficioso en ciertas situaciones de
programacin.
Por ejemplo podra escribir un bucle para imprimir los
cuadrados de los nmeros enteros del 1 al 25.
Dim X As Integer
X = 0
LABEL1:
X = X + 1
Print X ^ 2
If X < 25 Then GoTo LABEL1
Pg. 40
-
Un uso abusivo de la sentencia GoTo da lugar a cdigos
difciles de interpretar y de mantener. Por ello, se recomienda
su uso solamente en ocasiones excepcionales. La tarea que vaya
a desempear una sentencia GoTo puede suplirse utilizando
cualquiera de las estructuras de control vistas en las
secciones anteriores.
ARREGLOS
Un arreglo o matriz es una estructura de datos en la que
se almacena una coleccin finita de datos del mismo tipo, que
comparten un nombre comn, a los que se puede acceder por la
posicin (ndice) que ocupa cada uno de ellos dentro del
arreglo. Cada elemento del arreglo es una variable que puede
contener un nmero o una cadena de caracteres, dependiendo del
tipo de arreglo que se declare.
Los arreglos en Visual Basic se clasifican en estticos y
dinmicos.
Arreglos estticos Son aquellos arreglos cuyo tamao no puede cambiar en
tiempo de ejecucin. La declaracin de un arreglo esttico se
puede realizar mediante la siguiente sintaxis:
Dim NOMBRE_ARREGLO(DIMENSONES) As TIPO
Pg. 41
-
Donde DIMENSIONES es una lista de nmeros, separados por
comas y que definen las dimensiones del arreglo. Esta lista
puede ser de la siguiente forma:
DIMENSIN_1, DIMENSIN_2, DIMENSIN_3, . . ., DIMENSIN_K
Para el caso de un arreglo formado por K dimensiones,
es decir un arreglo K -dimensional.
A manera de ejemplo considere los siguientes casos que se
pueden presentar:
Dim LISTA(9) As Integer
Dim MATRIZ(4, 3) As Double
Dim NOMBRES(19) As String * 30
En el primer caso se declara un arreglo unidimensional de
10 elementos de tipo entero (por defecto los elementos de un
arreglo se numeran a partir de 0).
En el segundo caso se define de un arreglo bidimensional
de 20 elementos (5 filas por 4 columnas) de tipo punto flotante
en doble precisin.
En el tercer caso se define una arreglo unidimensional de
20 elementos de tipo cadena de caracteres (cada elemento tiene
una longitud fija de 30 caracteres).
Como se observa la numeracin de los elementos de un
arreglo por defecto comienza en cero, para hacer que la
Pg. 42
-
numeracin comience en 1, debe ingresar la siguiente orden en
la seccin de Declaraciones del mdulo de formulario:
Luego, para declarar los mismos arreglos de los casos
anteriores, las sentencias seran las siguientes:
Dim LISTA(10) As Integer
Dim MATRIZ(5, 4) As Double
Dim NOMBRES(20) As String * 30
Establecer la sentencia Option Base a 1 o trabajar con el
valor predeterminado (cero) queda a consideracin del lector.
Arreglos dinmicos Son aquellos arreglos en los que su tamao puede definirse
o modificarse en tiempo de ejecucin. Para declara una arreglo
dinmico utilice la siguiente sintaxis:
Dim NOMBRE_ARREGLO() As TIPO
Para definir el tamao del arreglo utilizar la siguiente
sintaxis:
Pg. 43
-
ReDim NOMBRE_ARREGLO(NMERO_ELEMENTOS)
Cada vez que se ejecuta la sentencia ReDim, todos los
valores almacenados en el arreglo se pierden. Para definir o
cambiar el tamao del arreglo conservando los valores del mismo
use la siguiente sintaxis:
ReDim Preserve NOMBRE_ARREGLO(NMERO_ELEMENTOS)
Para liberar el espacio de memoria utilizado por arreglos
dinmicos que ya no son tiles, utilizar la sintaxis:
Erase NOMBRE_ARREGLO
La orden Erase asigna cero a cada elemento de los arreglos
numricos y nulo () a cada elemento de los arreglos de cadena
de caracteres.
A manera de ejemplo considere el siguiente cdigo que
declara y hace uso de un arreglo dinmico:
Dim I As Integer, N As Integer, TEMP() As Integer
N = InputBox(Ingrese N?)
ReDim TEMP(N - 1)
For I = 0 To N - 1
TEMP(I) = I + 1
Print TEMP(I)
Next
Erase TEMP
Pg. 44
-
REGISTROS
Un registro es un nuevo tipo de dato, que se define como
una coleccin de datos de diferentes tipos, conocidos como
campos, los cuales se encuentran evidentemente relacionados.
Un registro slo se puede ser creado en la seccin de
declaraciones de un mdulo. La sintaxis correspondiente es:
Private Type NOMBRE_REGISTRO
DECLARACIONES_DE_LOS_MIEMBROS
End Type
Por ejemplo considere el siguiente cdigo que define la
estructura ALUMNO:
Private Type ALUMNO
ID_ALUMNO As String * 7
NOMBRE As String * 25
DIRECCION As String * 35
TELEFONO As String * 7
ESTADO As Boolean
End Type
Luego, podemos declarar una variable tipo ALUMNO de la
siguiente forma:
Dim X As ALUMNO
Pg. 45
-
Para referirse a un determinado miembro del registro se
utiliza el operador selector de campos ( . ), veamos:
X.ID_ALUMNO = 980976G X.NOMBRE = Carlos Castillo Peralta X.DIRECCION = Jr. C. Richardson 412 Chorrillos X.TELEFONO = 2510850 X.ESTADO = True Las mismas rdenes del prrafo anterior se pueden escribir
de una manera ms fcil, ms legible y ms eficiente si utiliza
la sentencia With . . . End With, del siguiente modo:
With X
. ID_ALUMNO = 980976G
.NOMBRE = Carlos Castillo Peralta
.DIRECCION = Jr. C. Richardson 412 Chorrillos
.TELEFONO = 2510850
.ESTADO = True
End With
FUNCIONES
Las funciones son uno de los elementos bsicos en
programacin. A continuacin sern estudiadas detalladamente.
Declaracin de una funcin
Pg. 46
-
Una funcin es un procedimiento que cuando se ejecuta
devuelve un nico resultado al procedimiento que la invoc. La
sintaxis correspondiente a la declaracin de una funcin es:
Function NOMBRE_FUNCIN([LISTA_PARMETROS]) [As TIPO]
SENTENCIAS
[NOMBRE_FUNCIN = VALOR_RETORNADO]
[Exit Function]
End Function
Donde LISTA_PARMETROS es una secuencia de variables
separadas por comas que se corresponden con los argumentos
pasados cuando es invocada la funcin.
Para especificar el tipo de datos que ser retornado por
la funcin utilice la clusula opcional As TIPO, el tipo es
Variant por omisin.
El valor retornado por la funcin es almacenado en su
propio nombre, es decir en NOMBRE_FUNCIN, que acta como
variable dentro del cuerpo de la funcin. Si no se efecta esta
asignacin el valor devuelto ser cero si la funcin es de tipo
numrica, nulo () si la funcin es de tipo cadena, o vaco
(Empty) si la funcin es de tipo Variant.
La clusula opcional Exit Function permite salir de una
funcin antes de que la funcin finalice, en caso sea esto
necesario.
Pg. 47
-
La sintaxis para la llamada a una funcin es de la
siguiente forma:
VARIABLE = NOMBRE_FUNCIN([LISTA_ARGUMENTOS])
Donde LISTA_ARGUMENTOS es una secuencia de constantes,
variables o expresiones separadas por comas. El nmero de
argumentos debe ser igual al nmero de parmetros de la
funcin. Los tipos de los argumentos deben coincidir con los
tipos de sus correspondientes parmetros.
A manera de ejemplo considere la implementacin de la
siguiente funcin:
32)( 2 ++= xxxf
En la seccin de Declaraciones del mdulo de formulario
ingrese el siguiente cdigo:
Function F(X As Double) As Double
F = X ^ 2 + 2 * X + 3
End Function
Para invocar la funcin creada recientemente, codifique
las siguientes lneas:
Dim A As Double, RESP As Double
A = InputBox(Ingrese A?)
RESP = F(A)
Pg. 48
-
MsgBox (Str(RESP))
Paso de argumentos a una funcin El paso de argumentos a una funcin es la forma como se
ingresan los datos y variables al interior de la funcin y se
presenta de dos formas:
Por referencia Por valor Paso de argumentos por referencia
En las funciones de Visual Basic, los argumentos se pasan
por referencia (forma por defecto), de este modo cualquier
cambio de valor que sufra un parmetro en el cuerpo de la
funcin, tambin se produce en el argumento correspondiente de
la llamada a la funcin. Esta forma de pasar los argumentos a
una funcin es til para funciones que devuelven ms de un
valor. Por ejemplo, considere la siguiente funcin que calcula
las races reales de una ecuacin cuadrtica Ax Bx C2 0+ + = . Function RAIZ(A As Double, B As Double, C As Double, _
X1 As Double, X2 As Double) As Boolean
Dim D As Double
D = B ^ 2 - 4 * A * C
If D >= 0 Then
X1 = (-B - Sqr(D)) / (2 * A)
X2 = (-B + Sqr(D)) / (2 * A)
Pg. 49
-
RAIZ = True ' Verdadero si hay races reales
Else
RAIZ = False ' Falso si no hay races reales
End If
End Function
La llamada a esta funcin se puede realizar de la manera
que se presenta a continuacin:
Dim A As Double, B As Double, C As Double
Dim X1 As Double, X2 As Double
A = InputBox(Ingrese A?)
B = InputBox(Ingrese B?)
C = InputBox(Ingrese C?)
If RAIZ(A, B, C, X1, X2) Then
MsgBox X1= & Str(X1)
MsgBox X2= & Str(X2)
Else
MsgBox NO EXISTEN RACES REALES
End If
Paso de argumentos por valor
Cuando se ejecuta una funcin, se podr especificar que el
valor de un argumento no sea cambiado por esta funcin, pasando
dicho argumento por valor. Para ello se debe anteponer la
Pg. 50
-
palabra reservada ByVal a la declaracin del parmetro en la
cabecera de la funcin. Por ejemplo:
Function F(ByVal X As Double) As Double
F = X ^ 2 + 2 * X + 3
End Function
La cabecera de la funcin F especifica que X ser pasado
por valor y no por referencia.
Funciones recursivas Se dice que una funcin es recursiva si se llama a s
misma. Por ejemplo la funcin FACTORIAL cuyo cdigo se presenta
a continuacin es recursiva:
Function FACTORIAL(N As Integer) As Long
If N 0 Then FACTORIAL = FACTORIAL(N - 1) * N
Else
FACTORIAL = 1
End If
End Function
PROCEDIMIENTOS
La sintaxis para definir un procedimiento es la
siguiente:
Private Sub NOMBRE_PROCEDIMIENTO([LISTA_PARMETROS])
Pg. 51
-
SENTENCIAS
[Exit Sub]
End Sub
La explicacin es anloga a la dada para las funciones.
Sin embargo, un procedimiento no puede ser utilizado en una
expresin, ya que un procedimiento no retorna ningn valor a
travs de su nombre.
La llamada a un procedimiento puede ser realizada de
alguna de las dos formas siguientes:
Call NOMBRE_PROCEDIMIENTO([LISTA_ARGUMENTOS])
NOMBRE_PROCEDIMIENTO([LISTA_ARGUMENTOS])
Por ejemplo, el siguiente cdigo corresponde a un
procedimiento que calcula e imprime la suma de los primeros
nmeros naturales impares, es decir: = 1 + 3 + 5 + . . . +
N
S N
Private Sub SUMA_IMPAR(N As Integer)
Dim S As Integer, I As Integer
S = 0
For I = 1 To N
If I Mod 2 0 Then S = S + I
Pg. 52 End If
-
Next
MsgBox La suma es S= & Str(S)
End Sub
La llamada a este procedimiento podra ser de la forma:
Call SUMA_IMPAR(25)
Pg. 53
-
CAPTULO 4
USO DE LOS CONTROLES
Los controles son aquellos objetos que se encuentran
dentro de un contenedor y que permiten la interaccin entre el
usuario y la aplicacin, ya sea para manipular datos y/o
ejecutar tareas.
En Visual Basic, los controles suelen ser agrupados en
tres categoras:
Controles bsicos Controles complementarios Controles externos Los controles bsicos son las etiquetas, cuadros de texto
y botones de comando, pues utilizando estos tres controles se
puede construir cualquier interfaz.
Los controles complementarios son el resto de los
controles, por ejemplo una casilla de verificacin, un cuadro
combinado o un cronmetro.
Los controles externos se refieren a aquellos controles
creados por terceros. Este tipo de controles son llamados
ActiveX.
Pg. 54
-
CONTROLES BSICOS
Los controles bsicos lo conforman las etiquetas, cuadros
de texto y botones de comando, debido a que cualquier interfaz
se puede implementar con slo estos tres objetos.
Etiqueta Una etiqueta es un control que permite presentar texto de
solo lectura. Se utiliza para mostrar ttulos y mensajes que
por lo general no cambian. Sin embargo, si lo desea, puede
escribir procedimientos que cambien el texto mostrado por una
etiqueta como respuesta a eventos en tiempo de ejecucin.
Propiedad Descripcin
Alignment Especifica la forma como se alinear el texto.
AutoSize Especifica si se cambia automticamente el tamao del control para que quepan sus contenidos.
BackColor,
ForeColor
Especifica el color de fondo y de primer plano empleado para mostrar el texto.
BackStyle Especifica si el fondo del control es transparente u opaco.
Caption Especifica el texto que se muestra en el control.
WordWrap Especifica si la etiqueta se extiende a ms de una lnea cuando el texto es amplio.
Pg. 55
-
Cuadro de texto Un cuadro de texto es un control en el que el usuario
pueda ingresar datos desde el teclado o visualizar un resultado
generado por la aplicacin. El valor de un cuadro de texto por
lo general se asocia a una variable de memoria.
Propiedad Descripcin
Enabled Habilita o deshabilita el control, es decir si se puede o no modificar el contenido.
Locked Permite bloquear el acceso al control en tiempo de ejecucin.
MaxLenght Especifica la longitud mxima (en caracteres) que puede escribirse en el control.
MultiLine Especifica si el control admitir mltiples lneas.
PasswordChar Determina si se muestran en el control los caracteres escritos por el usuario o los caracteres de marcador de posicin.
ScrollBars Especifica si se muestran las barras de desplazamiento horizontales o verticales.
SelLength Especifica el nmero de caracteres seleccionados.
SelStart Especifica el inicio del texto seleccionado. Si su valor es 0, el texto seleccionado comienza por el primer carcter.
SelText Contiene el texto seleccionado.
Text Contiene el texto introducido en el control. Puede inicializar el contenido en tiempo de diseo.
Pg. 56
-
Los eventos asociados a un cuadro de texto son los
siguientes:
Evento Descripcin
Change Ocurre cuando se cambia el contenido del control utilizando el teclado o el ratn.
KeyPress Ocurre cuando se pulsa una tecla.
Botn de comando Un botn de comando es un control que suele emplearse para
ejecutar una accin, como cerrar un formulario, imprimir un
informe, etc.
Propiedad Descripcin
Cancel Especifica si el control responder a la tecla ESC, por lo general para terminar la aplicacin.
Caption Muestra un ttulo para el control.
Default Especifica si el control responder a la tecla ENTRAR, sin importar la ubicacin del enfoque.
Enabled Permite habilitar o deshabilitar el control.
Picture Especifica una imagen tipo icono para el control.
Style Especifica la apariencia del control, ya sea estndar (estilo estndar de Windows) o grfica (con una imagen personalizada).
Pg. 57
-
Los botones de comando suelen responder al evento Click,
cuya descripcin es:
Evento Descripcin
Click Ocurre cuando el usuario hace click sobre el control.
A manera de ejemplo vamos a desarrollar la siguiente
aplicacin. Esta consiste en un cajero automtico el cual
permite manipular cierta cantidad de dinero para lo cual
dispone de los siguientes billetes: S/. 10.00; S/. 20.00;
S/. 50.00; S/. 100.00 y S/. 200.00. Elaborar una aplicacin que
permita la lectura de la cantidad a retirar e indique el menor
nmero de billetes a utilizar.
Para el desarrollo de la presente aplicacin proceda a
ubicar los siguientes controles en el formulario:
6 etiquetas
Pg. 58
-
6 cajas de texto
3 botones de comando
Una vez ubicados los controles, establezca las propiedades
segn se indica:
Form1 Nombre FrmCajero BorderStyle 3-Fixed Dialog Caption Cajero automtico Label1 Nombre LblCantidad AutoSize True Caption Cantidad a retirar: Label2 Nombre LblB10 AutoSize True Caption Billetes de S/. 10 Label3 Nombre LblB20 AutoSize True Caption Billetes de S/. 20 Label4 Nombre LblB50 AutoSize True Caption Billetes de S/. 50 Label5
Pg. 59
-
Nombre LblB100 AutoSize True Caption Billetes de S/. 100 Label6 Nombre LblB200 AutoSize True Caption Billetes de S/. 200 Text1 Nombre TxtCantidad Text Text2 Nombre TxtB10 Text Text3 Nombre TxtB20 Text Text4 Nombre TxtB50 Text Text5 Nombre TxtB100 Text Text6 Nombre TxtB200 Text Command1
Pg. 60
-
Nombre CmdAceptar Caption &Aceptar Command2 Nombre CmdLimpiar Caption &Limpiar Command3 Nombre CmdSalir Caption &Salir
Para aadir cdigo a la aplicacin haga doble click sobre
el botn Aceptar e ingrese lo siguiente:
Private Sub CmdAceptar_Click()
Dim C As Integer, B200 As Integer, B100 As Integer, _ B50 As Integer, B20 As Integer, B10 As Integer
C = Val(TxtCantidad) If C Mod 10 = 0 Then
B200 = C \ 200 : C = C Mod 200 B100 = C \ 100 : C = C Mod 100 B50 = C \ 50 : C = C Mod 50 B20 = C \ 20 : B10 = C Mod 20 TxtB200 = Str(B200) TxtB100 = Str(B100) TxtB50 = Str(B50) TxtB20 = Str(B20) TxtB10 = Str(B10)
Else
Pg. 61
-
MsgBox Cantidad a retirar debe ser mltiplo de 10
TxtCantidad =
TxtCantidad.SetFocus
End If
End Sub
Luego, haga doble click sobre el botn Limpiar y aada
el siguiente cdigo:
Private Sub CmdLimpiar_Click()
TxtCantidad =
TxtB200 =
TxtB100 =
TxtB50 =
TxtB20 =
TxtB10 =
TxtCantidad.SetFocus
End Sub
Finalmente dar doble click sobre el botn Salir y aada
el siguiente cdigo:
Private Sub CmdSalir_Click()
End
End Sub
Pg. 62
-
En el cdigo anterior hemos utilizado el mtodo SetFocus
para enfocar la caja de texto TxtCantidad, esto es, para
posicionar el cursor sobre ella.
CONTROLES COMPLEMENTARIOS
Los controles complementarios se utilizan como alternativa
a los controles bsicos en aplicaciones en las cuales su uso
facilita o mejora el diseo de la interfaz. Como el lector
podr verificar, algunos controles son ms adecuados que otros
dependiendo del tipo de aplicacin que se pretenda desarrollar.
Marco Un marco es un objeto contenedor que puede utilizarse para
agrupar casillas de verificacin, botones de opcin, botones de
comando, etc.
Propiedad Descripcin
Caption Muestra un ttulo para el control.
Casilla de verificacin Una casilla de verificacin se utiliza para alternar entre
dos posibles valores (Activado/Desactivado). Cada casilla de
verificacin es independiente de las dems ya que cada una
tiene su propio nombre (Name). Puede utilizar casillas de
verificacin en grupos para mostrar mltiples opciones entre
Pg. 63
-
las cuales el usuario puede seleccionar todas las que desee a
la vez.
Propiedad Descripcin
Caption Muestra un ttulo para el control.
Value Devuelve o establece el estado del control, puede ser: Desactivado (0), Activado (1).
Las casillas de verificacin suelen responder al evento
Click.
Botn de opcin Un botn de opcin se utiliza para alternar entre dos
posibles valores (Activado/Desactivado), de manera similar a
las casillas de verificacin, la diferencia radica en que de un
grupo de botones de opcin el usuario slo puede seleccionar un
nico botn a la vez.
Propiedad Descripcin
Caption Muestra un ttulo para el control.
Value Devuelve o establece el estado del control, puede ser: Desactivado (Falso), Activado (True).
Los botones de opcin tambin suelen responder al evento
Click.
Pg. 64
-
A manera de ejemplo vamos a desarrollar la siguiente
aplicacin, la cual permite cambiar el aspecto de un cuadro de
texto, el usuario debe elegir el color (rojo, verde, azul) y el
estilo (negrita, cursiva, subrayado) de la fuente a utilizar.
Adicionalmente, cuando el usuario active la casilla de
verificacin Convertir a maysculas, todo el texto que haya
escrito en el cuadro de texto se presentar en maysculas y
todo texto que escriba a continuacin (mientras la opcin est
activada) tambin deber aparecer en maysculas.
Para el desarrollo de la presente aplicacin proceda a
ubicar los siguientes controles en el formulario:
1 cuadro de texto
2 marcos
3 botones de opcin
4 casillas de verificacin
Pg. 65
-
Una vez ubicados los controles, establezca las propiedades
segn se indica:
Form1 Nombre FrmEditor BorderStyle 3-Fixed Dialog Caption Editor Text1 Nombre TxtMensaje ForeColor &H000000FF& Text Frame1 Nombre FraColor Caption Color Frame2 Nombre FraEstilo Caption Estilo Option1 Nombre OptRojo Caption Rojo ForeColor &H000000FF& Value True Option2 Nombre OptVerde Caption Verde ForeColor &H00008000&
Pg. 66
-
Option3 Nombre OptAzul Caption Azul ForeColor &H00C00000& Check1 Nombre ChkNegrita Caption Negrita Font Arial (Negrita) Check2 Nombre ChkCursiva Caption Cursiva Font Arial (Cursiva) Check3 Nombre ChkSubrayado Caption Subrayado Font Arial (Subrayado) Check4 Nombre ChkMayuscula Caption Convertir a maysculas
Una vez establecidas las propiedades, proceda a ingresar
el cdigo que se indica a continuacin:
Private Sub OptRojo_Click()
If OptRojo.Value Then TxtMensaje.ForeColor = RGB(255, 0, 0)
End If
Pg. 67 End Sub
-
Private Sub OptVerde_Click() If OptVerde.Value Then
TxtMensaje.ForeColor = RGB(0, 255, 0) End If
End Sub Private Sub OptAzul_Click()
If OptAzul.Value Then TxtMensaje.ForeColor = RGB(0, 0, 255)
End If End Sub Private Sub ChkNegrita_Click()
If ChkNegrita.Value Then TxtMensaje.Font.Bold = True
Else TxtMensaje.Font.Bold = False
End If End Sub Private Sub ChkCursiva_Click()
If ChkCursiva.Value Then TxtMensaje.Font.Italic = True
Else TxtMensaje.Font.Italic = False
End If End Sub
Pg. 68
-
Private Sub ChkSubrayado_Click()
If ChkSubrayado.Value Then
TxtMensaje.Font.Underline = True
Else
TxtMensaje.Font.Underline = False
End If
End Sub
Private Sub ChkMayuscula_Click()
If ChkMayuscula.Value Then
TxtMensaje = UCase(TxtMensaje)
End If
End Sub
Private Sub TxtMensaje_KeyPress(KeyAscii As Integer)
Dim CAR As String * 1
If ChkMayuscula.Value Then
CAR = UCase(Chr(KeyAscii))
KeyAscii = Asc(CAR)
End If
End Sub
La funcin RGB() especifica el color que se asigna a la
propiedad ForeColor.
La funcin UCase() retorna una cadena de caracteres en
maysculas.
Pg. 69
-
Cuadro de lista Un cuadro de lista es un control que presenta una lista de
elementos en la que el usuario puede seleccionar uno o ms de
dichos elementos. Si el nmero de elementos supera el nmero
que puede mostrarse, se agregar automticamente una barra de
desplazamiento al control.
Propiedad Descripcin
List Contiene los elementos de la lista. Puede definirlos en tiempo de diseo.
ListCount Especifica el nmero de elementos de la lista. Su valor siempre es uno ms que el mayor valor de ListIndex.
ListIndex Especifica el nmero de orden que ocupa el elemento seleccionado en la lista. Toma el valor de 0 para el primer elemento, si no ha selecciona ninguno retorna -1.
MultiSelect Especifica si se pueden seleccionar varios elementos de la lista.
SelCount Devuelve el nmero de elementos seleccionados.
Selected Especifica si un elemento de la lista est seleccionado.
Sorted Especifica si los elementos de la lista se ordenan alfabticamente.
Text Especifica el valor del elemento seleccionado en ese instante. El valor es tratado como una cadena de caracteres.
Pg. 70
-
Los mtodos que se pueden utilizar para un cuadro de lista
son los siguientes:
Mtodo Descripcin
AddItem Agrega un nuevo elemento a la lista.
Clear Elimina todos los elementos contenidos en la lista.
RemoveItem Elimina en elemento de la lista.
Cuadro combinado Un cuadro combinado es una mezcla de un cuadro de texto
con una lista. En l no slo se podr ingresar un dato sino
tambin seleccionarlo de la lista. Presenta las mismas
propiedades, eventos y mtodos que el cuadro de lista a
excepcin de lo siguiente:
Propiedad Descripcin
Style Especifica si el control se comporta como un cuadro de texto o como una lista desplegable. Un cuadro de texto permite ingresar valores. Una lista desplegable slo permite seleccionar valores. El valor predeterminado es 0-vbComboDropDown, e incluye una lista desplegable y un cuadro de texto. El valor 1-vbComboSimple incluye tan solo cuadro de texto. El valor 2-Dropdown List incluye slo una lista desplegable.
Pg. 71
-
Como ejemplo del uso de listas vamos a desarrollar una
aplicacin que permita ingresar el nombre de un curso, el cual
pasa a formar parte de una lista de espera antes de ser
programado para su dictado. Los cursos deben ser seleccionados
de la lista de espera y trasladados a la lista de cursos
programados y viceversa.
Para el desarrollo de la presente aplicacin proceda a
ubicar los siguientes controles en el formulario:
3 etiquetas
1 cuadro de texto
2 listas
5 botones de comando
Pg. 72
-
En seguida proceda a establecer las propiedades segn se
indica:
Form1 Nombre FrmCursos BorderStyle 3-Fixed Dialog Caption Cursos Label1 Nombre LblCurso AutoSize True Caption Ingrese nuevo curso: Label2 Nombre LblSeleccionar AutoSize True Caption Seleccione un curso: Label3 Nombre LblProgramado AutoSize True Caption Curso programado: Text1 Nombre TxtCurso Text List1 Nombre LstSeleccionar List2 Nombre LstProgramado
Pg. 73
-
Command1 Nombre CmdAgregar Caption Picture C:\FundVB\Bitmaps\AddItem.Bmp Style 1-Graphical Command2 Nombre CmdAgregarTodo Caption Picture C:\FundVB\Bitmaps\AddAll.Bmp Style 1-Graphical Command3 Nombre CmdQuitar Caption Picture C:\FundVB\Bitmaps\Remove.Bmp Style 1-Graphical Command4 Nombre CmdQuitarTodo Caption Picture C:\FundVB\Bitmaps\RemoveAll.Bmp Style 1-Graphical Command5 Nombre CmdAnnadir Caption &Aadir Default True
Seguidamente proceda a ingresar el cdigo que se indica a
continuacin:
Pg. 74 Private Sub CmdAnnadir_Click()
-
LstSeleccionar.AddItem TxtCurso
TxtCurso =
TxtCurso.SetFocus
End Sub
Private Sub CmdAgregar_Click()
Dim CURSO As String, I As Integer
CURSO = LstSeleccionar.Text
I = LstSeleccionar.ListIndex
If LstSeleccionar.ListIndex >= 0 Then
LstProgramado.AddItem CURSO
LstSeleccionar.RemoveItem I
End If
End Sub
Private Sub CmdQuitar_Click()
Dim CURSO As String, I As Integer
CURSO = LstProgramado.Text
I = LstProgramado.ListIndex
If LstProgramado.ListIndex >= 0 Then
LstSeleccionar.AddItem CURSO
LstProgramado.RemoveItem I
End If
End Sub
Private Sub CmdAgregarTodo_Click()
Dim I As Integer
Pg. 75
-
For I = 0 To LstSeleccionar.ListCount - 1
LstProgramado.AddItem LstSeleccionar.List(I)
Next
LstSeleccionar.Clear
End Sub
Private Sub CmdQuitarTodo_Click()
Dim I As Integer
For I = 0 To LstProgramado.ListCount - 1
LstSeleccionar.AddItem LstProgramado.List(I)
Next
LstProgramado.Clear
End Sub
Seguidamente mostraremos un ejemplo del uso de los cuadros
combinados. Para tal fin vamos a desarrollar una aplicacin que
permita realizar consultas acerca de un determinado curso. La
relacin de cursos se presentar mediante un cuadro combinado,
del cual el usuario debe seleccionar el curso de su inters y
en seguida se presentar el nombre del profesor encargado del
curso (teora), el nombre del jefe de prctica (laboratorio),
as como los horarios de teora y de laboratorio,
respectivamente.
Pg. 76
-
Para el desarrollo de la presente aplicacin proceda a
ubicar los siguientes controles en el formulario:
1 etiqueta
1 cuadro de texto
1 cuadro combinado
1 botn de comando
En seguida proceda a establecer las propiedades segn se
indica:
Form1 Nombre FrmConsultaCursos BorderStyle 3-Fixed Dialog Caption Consulta de cursos
Pg. 77
-
Label1 Nombre LblCursos Caption Cursos: Text1 Nombre TxtCurso MultiLine True ScrollBars 2-Vertical Text Combo1 Nombre CboCursos Text Style 2-Dropdown List Command1 Nombre CmdSalir Caption &Salir
Seguidamente proceda a ingresar el cdigo que se indica a
continuacin:
Dim Matriz(5, 3) As String Private Sub Form_Load()
CboCursos.AddItem Microsoft Visual Basic Nivel I CboCursos.AddItem Microsoft Visual Basic Nivel II CboCursos.AddItem Microsoft Visual FoxPro Nivel I CboCursos.AddItem Microsoft Visual FoxPro Nivel II CboCursos.AddItem Microsoft Visual C++ Nivel I CboCursos.AddItem Microsoft Visual C++ Nivel II
Pg. 78
-
Matriz(0, 0) = Castillo Peralta, Carlos
Matriz(1, 0) = Castillo Peralta, Carlos
Matriz(2, 0) = Linares Alarcon, Adams
Matriz(3, 0) = Castillo Peralta, Carlos
Matriz(4, 0) = Crdoba Saavedra, Javier
Matriz(5, 0) = Castillo Peralta, Carlos
Matriz(0, 1) = Sa 08-11
Matriz(1, 1) = Sa 14-17
Matriz(2, 1) = Sa 08-11
Matriz(3, 1) = Do 08-11
Matriz(4, 1) = Sa 14-17
Matriz(5, 1) = Sa 17-20
Matriz(0, 2) = Castillo Peralta, Carlos
Matriz(1, 2) = Linares Alarcon, Adams
Matriz(2, 2) = Montes Tejada, Estela
Matriz(3, 2) = Linares Alarcon, Adams
Matriz(4, 2) = Crdoba Saavedra, Javier
Matriz(5, 2) = Crdoba Saavedra, Javier
Matriz(0, 3) = Sa 11-13
Matriz(1, 3) = Do 08-10
Matriz(2, 3) = Sa 11-13
Matriz(3, 3) = Do 14-16
Matriz(4, 3) = Sa 18-20
Matriz(5, 3) = Do 08-10
End Sub
Pg. 79
-
Private Sub CboCursos_Click()
Dim P_TEORIA As String, H_TEORIA As String
Dim P_LAB As String, H_LAB As String
P_TEORIA = Profesor de teora: & _
Matriz(CboCursos.ListIndex, 0)
H_TEORIA = Horario de teora: & _
Matriz(CboCursos.ListIndex, 1)
P_LAB = Jefe de prctica: & _
Matriz(CboCursos.ListIndex, 2)
H_LAB = Horario laboratorio: & _
Matriz(CboCursos.ListIndex, 3)
TxtCurso = P_TEORIA & vbCrLf & H_TEORIA & vbCrLf & _
P_LAB & vbCrLf & H_LAB
End Sub
Private Sub CmdSalir_Click()
End
End Sub
La constante vbCrLf es una combinacin de retorno de carro
y avance de lnea, es equivalente a Chr(13) + Chr(10).
Para este ejemplo en particular hemos almacenado la
informacin en memoria RAM mediante el uso de un arreglo
bidimensional (Matriz).
Pg. 80
-
Cronmetro Un cronmetro sirve para controlar el tiempo transcurrido
desde el inicio de una accin.
Propiedad Descripcin
Interval Especifica el nmero de milisegundos que se esperar para disparar el evento Timer.
El control Cronmetro responde al evento Timer, cuya
descripcin es:
Evento Descripcin
Timer Ocurre cuando el nmero de milisegundos especificado en la propiedad Interval ha transcurrido.
A manera de ejemplo vamos a desarrollar la siguiente
aplicacin que simula el funcionamiento de un reloj digital.
Pg. 81
-
Para el desarrollo de la presente aplicacin proceda a
ubicar los siguientes controles sobre el formulario:
1 etiqueta
1 cuadro de texto
1 cronmetro
1 botn de comando
En seguida proceda a establecer las propiedades segn se
indica:
Form1 Nombre FrmReloj BorderStyle 3-Fixed Dialog Caption Reloj digital Label1 Nombre LblHora Caption Hora Text1 Nombre TxtHora Text Timer1 Nombre Timer1 Interval 500 Command1 Nombre CmdTerminar Caption &Terminar
Pg. 82
-
Seguidamente proceda a ingresar el cdigo que se indica a
continuacin:
Private Sub Form_Activate()
TxtHora = Time() End Sub Private Sub Timer1_Timer()
If TxtHora Time() Then TxtHora = Time()
End If End Sub Private Sub CmdTerminar_Click() End End Sub Cuadro de imagen Un cuadro de imagen se utiliza para mostrar un archivo de
imagen (BMP, GIF o JPG). Recorta el grfico si el control no es
lo bastante grande para mostrar la imagen completa.
Propiedad Descripcin
AutoSize Especifica si el control ajusta automticamente su tamao para mostrar un grfico completo.
Picture Especifica el archivo de imagen para el control.
Pg. 83
-
El evento que suele manejarse para este control es
MouseMove, cuya descripcin es:
Evento Descripcin
MouseMove Ocurre cuando el usuario mueve el ratn sobre el control.
Imagen Un control imagen se utilizar para mostrar un archivo de
imagen (BMP, GIF o JPG) de manera similar a un Cuadro de
imagen. Sin embargo, este control utiliza menos recursos del
sistema y se actualiza con ms rapidez que un cuadro de imagen.
Propiedad Descripcin
Picture Especifica el archivo de imagen para el control.
Stretch Especifica como se ajusta el tamao del archivo grfico para que quepa dentro del control imagen.
Para este control tambin se suele manejar el evento
MouseMove.
Barras de desplazamiento horizontal Una barra de desplazamiento horizontal representa un valor
entero, la cual tiene un cuadrado que se desplaza a lo largo de
la misma para fijar un valor.
Pg. 84
-
La posicin ms a la izquierda se corresponde con el valor
mnimo, la posicin ms a la derecha con el valor mximo, y
cualquier otra posicin es un valor entre ellos dos.
Propiedad Descripcin
Max Especifica el valor mximo que puede tomar la propiedad Value.
Min Especifica el valor mnimo que puede tomar la propiedad Value.
LargeChange Especifica en cuanto cambiar el valor de la propiedad Value cuando el usuario haga click antes o despus del cuadrado de desplazamiento.
SmallChange Especifica en cuanto cambiar el valor de la propiedad Value cuando el usuario haga click en alguna de las flechas de los extremos de la barra.
Value Especifica el valor del control, este se encuentra siempre entre los valores de las propiedades Min y Max.
Las barras de desplazamientos responden a los eventos:
Evento Descripcin
Change Ocurre inmediatamente despus que el cuadrado de desplazamiento ha sido movido.
Scroll Ocurre mientras el cuadrado de desplazamiento est siendo movido (este evento slo ocurre cuando el cuadrado es arrastrado).
Barras de desplazamiento vertical
Pg. 85
-
Una barra de desplazamiento vertical representa un valor
entero, la cual tiene un cuadrado que se desplaza a lo largo de
la misma para fijar un valor.
La posicin ms hacia arriba se corresponde con el valor
mnimo, la posicin ms hacia abajo se corresponde con el valor
mximo, y cualquier otra posicin es un valor entre ellos dos.
Las propiedades y eventos de las barras de desplazamiento
horizontal y vertical son anlogas.
Como ejemplo, vamos a construir una aplicacin que permita
cambiar el color de fondo de un cuadro de imagen, mediante tres
barras de desplazamiento (rojo, verde y azul).
Para el desarrollo de la presente aplicacin proceda a
ubicar los siguientes controles en el formulario:
3 etiquetas
Pg. 86
-
3 barras de desplazamiento horizontal
1 cuadro de imagen
En seguida proceda a establecer las propiedades segn se
indica:
Form1 Nombre FrmColores BorderStyle 3-Fixed Dialog Caption Colores Label1 Nombre LblRojo Caption Rojo Label2 Nombre LblVerde Caption Verde Label3 Nombre LblAzul Caption Azul HScroll1 Nombre HSRojo LargeChange 10 Max 255 Min 0 SmallChange 1 Value 255 HScroll2
Pg. 87
-
Nombre HSVerde LargeChange 10 Max 255 Min 0 SmallChange 1 Value 0 HScroll3 Nombre HSAzul LargeChange 10 Max 255 Min 0 SmallChange 1 Value 0 Picture1 Nombre PicFondo BackColor &H000000FF&
Seguidamente proceda a ingresar el cdigo que se indica a
continuacin:
Private Sub HSRojo_Change()
PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul)
End Sub
Private Sub HSVerde_Change()
PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul)
End Sub
Private Sub HSAzul_Change()
Pg. 88
-
PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul)
End Sub
En el cdigo anterior se debi colocar HSRojo.Value,
HSVerde.Value y HSAzul.Value, pero debido a que la propiedad
Value es por defecto se puede omitir.
Cuadro de lista de unidades Un cuadro de lista de unidades permite al usuario
seleccionar una unidad de disco vlida en tiempo de ejecucin.
Utilice este control para presentar una lista de todas las
unidades vlidas del sistema.
Propiedad Descripcin
Drive Especifica la unidad seleccionada en tiempo de ejecucin.
Este control responde al evento Change, cuya descripcin
es la siguiente:
Evento Descripcin
Change Ocurre cuando el usuario hace click sobre la unidad que desea seleccionar. El evento Change tambin ocurre si se selecciona la unidad mediante el teclado.
Cuadro de lista de directorios
Pg. 89
-
Un cuadro de lista de directorios muestra directorios y
rutas de acceso en tiempo de ejecucin. Utilice este control
para mostrar una lista jerrquica de directorios.
Propiedad Descripcin
Path Especifica la ruta de acceso actual.
Un cuadro de lista de directorios tambin responde al
evento Change.
Cuadro de lista de archivos Un cuadro de lista de archivos encuentra y muestra los
archivos del directorio especificado por la propiedad Path en
tiempo de ejecucin. Utilice este control para mostrar una
lista de los archivos seleccionados por tipo.
Propiedad Descripcin
Path Especifica la ruta de acceso actual.
Pattern Especifica el tipo de archivo que se desea visualizar en el control.
List Devuelve los elementos contenidos en la parte de lista del control.
ListIndex Especifica el ndice del elemento seleccionado actualmente en el control.
Como ejemplo vamos a desarrollar una aplicacin que
permita el manejo de unidades, carpetas y archivos. El usuario
Pg. 90
-
puede seleccionar la unidad actual de trabajo, la carpeta y el
archivo y poder visualizar su contenido (en este caso archivos
grficos *.JPG).
Para el desarrollo de la presente aplicacin proceda a
ubicar los siguientes controles en el formulario:
4 etiquetas
1 cuadro de lista de unidades
1 cuadro de lista de directorios
1 cuadro de lista de archivos
1 imagen
En seguida proceda a establecer las propiedades segn se
indica:
Form1 Nombre FrmVisor Caption Visor
Pg. 91
-
Label1 Nombre LblUnidad Caption Unidad Label2 Nombre LblCarpeta Caption Carpeta Label3 Nombre LblArchivo Caption Archivo Label4 Nombre LblVista Caption Vista previa Drive1 Nombre Drive1 Dir1 Nombre Dir1 File1 Nombre File1 Pattern *.JPG Image1 Nombre ImgVista Stretch True
Seguidamente proceda a ingresar el cdigo que se indica a
continuacin:
Private Sub Drive1_Change()
Pg. 92
-
On Error GoTo DRIVE_ERROR
Dir1.Path = Drive1.Drive
Exit Sub
DRIVE_ERROR:
MsgBox ERROR: Unidad no preparada, vbCritical, Error
Exit Sub
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub File1_Click()
Dim ARCHIVO As String
ARCHIVO = File1.Path & \
ARCHIVO = ARCHIVO & File1.List(File1.ListIndex)
ImgVista.Picture = LoadPicture(ARCHIVO)
End Sub
La instruccin On Error activa una rutina de control de
errores y especifica la ubicacin de la misma en un
procedimiento.
LA FUNCIN MSGBOX
A menudo habr situaciones en las cuales tendr que
presentar algn mensaje (por ejemplo una pregunta) y en funcin
Pg. 93
-
de la respuesta del usuario se ejecutar una determinada
accin.
La funcin MsgBox() muestra un cuadro de dilogo
predefinido y retorna un valor de tipo entero dependiendo del
botn seleccionado por el usuario. Su sintaxis es de la
siguiente forma:
VALOR = MsgBox(MENSAJE [, BOTN + ICONO, TTULO])
Donde MENSAJE se refiere a una expresin de cadena que se
muestra como mensaje en el cuadro de dilogo.
BOTN es una expresin numrica que se refiere al tipo y
cantidad de botones a utilizar.
ICONO es una expresin numrica que se refiere al estilo
de icono que se va ha utilizar.
TTULO es una texto que se mostrar en la barra de ttulo
de la caja de dilogo.
Tipo de botn Valor Botn Nombre
0 Aceptar vbOKOnly
Pg. 94
-
1 Aceptar y Cancelar vbOKCancel 2 Anular, Reintentar, Ignorar vbAbortRetryIgnore 3 S, No y Cancelar vbYesNoCancel 4 S y No vbYesNo 5 Reintentar y Cancelar vbRetryCancel
Tipo de icono Valor Icono Nombre 16 Mensaje crtico vbCritical 32 Signo de interrogacin vbQuestion 48 Signo de exclamacin vbExclamation 64 Signo de informacin vbInformation
Valores retornados Valor Botn Nombre
1 Aceptar vbOK 2 Cancelar vbCancel 3 Anular vbAbort 4 Reintentar vbRetry 5 Ignorar vbIgnore 6 S vbYes 7 No vbNo Como ejemplo vamos a construir un formulario que presente
un botn Salir, de tal forma que cuando el usuario pulse
dicho botn se presente el siguiente mensaje:
Pg. 95
-
En caso de que el usuario elija la opcin S, la
aplicacin debe terminar. En caso contrario, es decir si el
usuario elige la opcin No, se debe proseguir con la
aplicacin.
Para el desarrollo del presente ejemplo, proceda a ubicar
sobre el formulario un botn de comando (CmdSalir), a
continuacin ingresar el siguiente cdigo:
Private Sub CmdSalir_Click()
Dim RESP As Integer
RESP = MsgBox(Desea terminar la aplicacin?, _
vbQuestion + vbYesNo, Pregunta)
If RESP = vbYes Then
End
End If
End Sub
Para ilustrar mejor el uso de la funcin MsgBox() vamos a
desarrollar la siguiente aplicacin que permite mostrar los
diferentes tipos de botones e iconos generados por la funcin.
Pg. 96
-
Para ello proceda a ubicar los siguientes controles en el
formulario:
2 cuadros de lista 1 botn de comando
En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre FrmFuncionMsgBox BorderStyle 3-Fixed Dialog Caption Funcin MsgBox List1 Nombre LstBoton List2 Nombre LstIcono Command1
Pg. 97
-
Nombre CmdMensaje Caption &Mensaje
Seguidamente proceda a ingresar el cdigo que se indica a continuacin: Private Sub Form_Load()
LstBoton.AddItem Aceptar LstBoton.AddItem Aceptar y Cancelar LstBoton.AddItem Anular, Reintentar, Ignorar LstBoton.AddItem S, No y Cancelar LstBoton.AddItem S y No LstBoton.AddItem Reintentar y Cancelar LstIcono.AddItem Mensaje crtico LstIcono.AddItem Signo de interrogacin LstIcono.AddItem Signo de exclamacin LstIcono.AddItem Signo de informacin
End Sub Private Sub CmdMensaje_Click()
Dim RESP As Integer, BOTON As Integer, ICONO As Integer BOTON = LstBoton.ListIndex ICONO = (LstIcono.ListIndex + 1) * 16 RESP = MsgBox(Hola Mundo, BOTON + ICONO, Ejemplo)
End Sub
Pg. 98
-
CAPTULO 5
EL FORMULARIO
Un formulario es un objeto contenedor que sirve para
disear la interfaz de usuario. En el formulario se colocan los
controles para que el usuario pueda interactuar con la
aplicacin de una manera fcil e intuitiva.
Los formularios tienen sus propias propiedades, eventos y
mtodos con los que se puede controlar su apariencia y
comportamiento, muchos de los cuales ya han sido utilizados en
las aplicaciones de los captulos anteriores y que a
continuacin pasamos a describir.
Pg. 99
-
Propiedad Descripcin AutoRedraw Especifica si se activa el redibujado
automtico del formulario. BackColor Especifica el color de fondo del formulario. BorderStyle Especifica un estilo de borde para el
formulario. Caption Especifica el texto que se muestra en la
barra de ttulo del formulario. ControlBox Especifica si aparece un icono de men
desplegable en el ngulo superior izquierdo del formulario.
ForeColor Especifica el color de primer plano utilizado para mostrar texto sobre el formulario.
Height Especifica el alto del formulario. Se mide en twips.
Icon Especifica el icono que se muestra para un formulario.
MaxButton Especifica si el formulario tiene un botn Maximizar.
MinButton Especifica si el formulario tiene un botn Minimizar.
Picture Especifica el archivo de imagen que se va ha mostrar como fondo para el formulario.
StartUpPosition Especifica la posicin del formulario la primera vez que se ejecuta.
Visible Establece si el formulario es visible o est oculto.
Width Especifica el ancho del formulario. Se mide en twips.
WindowState Establece el estado del formulario (normal, minimizado o maximizado).
Pg. 100
-
Nota
Un twip es una unidad independiente de la pantalla
utilizada para asegurar que la colocacin y la proporcin de
los elementos de la pantalla de la aplicacin son los mismos en
todos los sistemas de pantallas. Un twip es igual a 1/20 de un
punto de impresora. Existen aproximadamente 1440 twips en una
pulgada o 567 twips en un centmetro.
Los eventos a los que responde un formulario son los
siguientes:
Evento Descripcin
Activate Ocurre cuando el formulario se convierte en ventana activa.
Deactivate Ocurre cuando el formulario deja de ser la ventana activa.
Load Ocurre cuando el formulario se carga en la memoria.
MouseDown Ocurre cuando el usuario pulsa el botn derecho del ratn sobre el formulario.
QueryUnload Ocurre antes de iniciarse el proceso de descarga del formulario (antes del evento Unload).
Resize Ocurre cuando se muestra primero el formulario o se cambian sus dimensiones.
Unload Ocurre cuando el formulario se descarga de la memoria.
Pg. 101
-
Los mtodos que se pueden utilizar con un formulario son
los siguientes:
Mtodo Descripcin
Hide Oculta un formulario.
PopupMenu Presenta un men popup en la posicin actual del ratn.
Print Imprime un valor sobre el formulario.
Refresh Vuelve a pintar un formulario y actualiza todos los valores contenidos en l.
Show Muestra un formulario y determina si es modal o carece de modo. Si el formulario a mostrar no est cargado Visual Basic lo carga automticamente.
Como ejemplo vamos a desarrollar una aplicacin que
utilice dos formularios. Desde el primer formulario el usuario
podr ir al segundo formulario y viceversa.
Pg. 102
-
Para el desarrollo de la presente aplicacin proceda a
crear un nuevo proyecto. Seguidamente debe ubicar dos botones
de comando en el formulario. Luego establezca las siguientes
propiedades:
Form1 Nombre Form1 Caption Primer formulario Command1 Nombre CmdIr Caption &Ir Command2 Nombre CmdSalir Caption &Salir
Seguidamente procede a ingresar el cdigo que se muestra a
continuacin:
Private Sub CmdIr_Click()
Form2.Show
Form1.Hide
End Sub
Private Sub CmdSalir_Click()
End
End Sub
Pg. 103
-
Luego debe aadir un formulario adicional al proyecto.
Para tal fin, seleccione el men Proyecto y elija la opcin
Agregar formulario.
Del cuadro de dilogo que se presenta elija el icono
Formulario y haga click en el botn Abrir, tal como se indica
en la figura. En ese instante se aadir un nuevo formulario al
proyecto. Luego, proceda a ubicar un botn de comandos en el
formulario que acaba de aadir y establezca las siguientes
propiedades:
Form2 Nombre Form2 Caption Segundo formulario ControlBox False
Pg. 104
-
Command2 Nombre CmdVolver Caption &Volver
En seguida proceda a ingresar el cdigo que se indica a
continuacin:
Private Sub CmdVolver_Click()
Form1.Show
Form2.Hide
End Sub
ESTILOS DE FORMULARIO
Visual Basic cuenta con seis diferentes estilos de
formulario, cuya descripcin es la siguiente:
Valor Estilo Descripcin 0 None No presenta ningn borde.
1 Fixed Single Puede incluir un Men de control, una Barra de ttulo , un botn Maximizar y un botn Minimizar. Slo puede cambiar de tamao mediante los botones Maximizar y Minimizar.
2 Sizable (Predeterminado). Puede cambiar de tamao mediante cualquiera de los elementos opcionales de borde indicados para Fixed Single.
Pg. 105
-
Valor Estilo Descripcin 3 Fixed Dialog Puede incluir un Men de control y
una Barra de ttulo, pero no los botones Maximizar ni Minimizar. No puede cambiar de tamao.
4 Fixed ToolWindow Slo muestra el botn Cerrar y el texto de la barra de ttulo aparece con un tamao de fuente reducido. No puede cambiar su tamao.
5 Sizable ToolWindow Slo muestra el botn Cerrar y el texto de la barra de ttulo aparece con un tamao de fuente reducido. Puede cambiar de tamao.
Como ejemplo vamos a desarrollar una aplicacin que
permita representar los diferentes estilos de formulario de
Visual Basic.
Pg. 106
-
Para el desarrollo de la presente aplicacin proceda a
crear un nuevo proyecto y luego ubique los siguientes controles
en el formulario:
1 cuadro de lista
2 botones de comando
Luego debe establecer las propiedades que se indican a
continuacin:
Form1 Nombre FrmPrincipal Caption Estilos de formulario BorderStyle 3-Fixed Dialog List1 Nombre LstTipoForm List 0-None
1-Fixed Single 2-Sizable 3-Fixed Dialog 4-Fixed ToolWindow 5-Sizable ToolWindow
Command1 Nombre CmdMostrar Caption &Mostrar Command2 Nombre CmdSalir Caption &Salir
Pg. 107
-
Seguidamente procede a ingresar el cdigo que se muestra a
continuacin:
Private Sub Form_Load()
Load FrmNone
Load FrmFixedSingle
Load FrmSizable
Load FrmFixedDialog
Load FrmFixedToolWindow
Load FrmSizableToolWindow
End Sub
Private Sub CmdMostrar_Click()
Dim OP As Integer
OP = LstTipoForm.ListIndex
Select Case OP
Case 0 : FrmNone.Show vbModal
Case 1 : FrmFixedSingle.Show vbModal
Case 2 : FrmSizable.Show vbModal
Case 3 : FrmFixedDialog.Show vbModal
Case 4 : FrmFixedToolWindow.Show vbModal
Case 5 : FrmSizableToolWindow.Show vbModal
Case Else
MsgBox Debe seleccionar estilo de formulario
End Select
End Sub
Pg. 108
-
Private Sub LstTipoForm_DblClick() Call CmdMostrar_Click
End Sub Private Sub CmdSalir_Click()
End End Sub Seguidamente proceda a aadir los formularios para las diferentes opciones del cuadro de lista. Cambie los nombres de los formularios segn se indica: Formulario Nombre
Form2 FrmNone Form3 FrmFixedSingle Form4 FrmSizable Form5 FrmFixedDialog Form6 FrmFixedToolWindow Form7 FrmSizableToolWindow
Luego debe activar el formulario FrmNone, ubicar un botn de comandos sobre el mismo y establecer las siguientes propiedades: Form2 Nombre FrmNone BorderStyle 0-None Caption None
Pg. 109
-
Command1 Nombre CmdVolver Caption &Volver
Una vez establecidas las propiedades, proceda a ingresar
el cdigo que se muestra a continuacin:
Private Sub CmdVolver_Click()
Unload Me
End Sub
Para concluir con el diseo de la aplicacin, simplemente
repita el procedimiento anterior para los dems tipos de
formularios.
Como habr podido observar, al mostrar un formulario
mediante el mtodo Show podemos hacerlo de forma modal
(vbModal) o no modal (opcin por defecto). Un formulario modal
es aquel que necesita cerrarse antes de pasar el enfoque a otro
formulario. Un formulario no modal no requiere cerrarse para
pasar el enfoque a otro formulario.
PASANDO VALORES ENTRE FORMULARIOS
Muchas veces se requieren pasar valores de un