www.s-ejecutive.com 1

Transcripción

www.s-ejecutive.com 1
www.s-ejecutive.com
1
Índice




























Introducción ........................................................................................... 3
Trabajo con controles ............................................................................ 7
Propiedades de controles ....................................................................... 9
Programación orientada a objetos ...................................................... 12
Escribir código....................................................................................... 14
Manejo de información .......................................................................... 19
Operaciones matematicas..................................................................... 24
Manipulación de cadenas...................................................................... 27
If …. Then ….else .................................................................................. 32
Select case ............................................................................................. 36
Looping (bucles) .................................................................................... 40
Funciones I ............................................................................................. 45
Funciones II ............................................................................................ 49
Funciones III ........................................................................................... 55
Funciones IV .......................................................................................... 60
Funciones V ........................................................................................... 62
Check box .............................................................................................. 64
Radiobutton ........................................................................................... 70
Aplicación Web ...................................................................................... 73
Manejo de Errores ................................................................................ 75
Manejo de gráficos I .............................................................................. 80
Manejo de gráficos II ............................................................................. 82
Manejo de gráficos III ............................................................................ 85
Manejo de gráficos IV ............................................................................ 88
Manejo de gráficos V ............................................................................. 91
Manejo de gráficos VI ............................................................................ 94
Timer ....................................................................................................... 98
Animación ............................................................................................ 102
www.s-ejecutive.com
2
1.-INTRODUCCIÓN
Visual Basic 2010 es muy similar a la versión 2008 aunque ha añadido muchas nuevas funciones.
Al igual que la versión 2008 , Visual Basic 2010 es un lenguaje de Programación Orientada a
Objetos por lo que ha sido incorporado al igual que que otros lenguajes como C++ o Java++ entre
otros.
De cualquier forma para comenzar a utilizar VB2010 no es necesario contar con conocimientos
previos sobre la programación orientada a objetos. Cualquier persona que incluso esté
familiarizada con Visual Basic 6 puede aprender muy fácilmente esta versión pues pese a los
cambios y evoluciones del lenguaje, la interfaz y sintaxis de éste tienen la misma base.
Para descargar la versión express de VB2010 podemos entrar a:
http://www.microsoft.com/express/downloads/
El entorno integrado de Desarrollo (IDE)se muestra a continuación con sus principales
elementos





Nuevo Proyecto
Abrir Propyecto que muestra una lista de proyectos recientes que se hayan realizado
El panel de Inicio que muestra algunos tips que puedan ayudar rápidamente a
desarrollar algunas aplicaciones
El panel de Noticias incluye las noticias mas recientes acerca de Visual Basic 2010
Express. Tambien notifica las nuevas actualizaciones y desarrollos.
La sección de Propiedades
Para iniciar a crear la primera aplicación debemos dar click en Nuevo Proyecto. De manera que
se muestre el siguiente cuadro de dialogo.
www.s-ejecutive.com
3
El cuadro de dialogo ofrece 5 tipos de proyectos que se pueden crear. Para realizar la primera
aplicación seleccionaremos Windows Form Application. En la parte inferior podemos indicar un
nuevo nombre al proyecto. Una vez seleccionado y cambiado el nombre damos click en
continuar.
El entorno de trabajo que se muestra es muy similar al ofrecido en versiones tan antiguas como
la versión 6.0. Consiste en mostrar un formulario vacio, el cuadro de herramientas flotante de
lado izquierdo y el panel de propiedades de lado derecho.
www.s-ejecutive.com
4
Cuadro de herramientas
Ahora arrastraremos un control de botón al formulario, y cambiaremos el texto del botón a “ok”
en el panel de propiedades, La palabra Ok se mostrará sobre el botón xomo se muestra en el
ejemplo
Para ingresar el codigo correspondiente daremos doble click sobre el boton y se abrirá la
ventana de código en donde pondremos el código siguiente.
www.s-ejecutive.com
5
Al ejecutar este código ya sea con el boton ó con la tecla F5 se mostrará el formulario y cuando
demos click en el botón se mostrará el siguiente cuadro de dialogo(msgbox)
Lista la primer aplicación hecha en Visual Basic.
www.s-ejecutive.com
6
2.- TRABAJO CON CONTROLES
Los controles en Visual Basic son herramientas que pueden ser ubicadas en el formulario para
llevar a cabo muy diversas tareas. Son usadas para crear muchos tipos de aplicaciones en
Windows. El diagrama de la derecha es la caja de herramientas en donde se encuentran los
controles. Los controles están clasificados en controles comunes, contenedores, Menus, Barras de
herramientas, Datos, Componentes, Impresión, cuadros de dialogo. Principalmente usaremos los
controles comunes.
Para insertar un control en el formulario basta con arrastrarlo desde la caja de herramientas. Una
vez ubicado en el formulario podemos reubicarlo o cambiar su tamaño por medio de los nodos a
nuestro gusto o necesidad.
Al dar click en controles comunes se
desplegarán los controles como en la
imagen siguiente
www.s-ejecutive.com
7
2.1 Control Text Box
Ahora crearemos una calulador muy simple en pocos pasos, utilizaremos 2 TextBox para
obtener numerous en ellos. 3 etiquetas y un botón. Los 2 textbox son para que el usuario pueda
ingresar los números, una etiqueta es para mostrar el operador de suma (+), la otra etiqueta es
para mostrar el signo de igual. La ultima etiqueta nos permitirá mostrar el total.
El codigo del boton quedará de la siguiente forma
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Han
dles Button1.Click
Dim num1, num2, product As Single
num1 = TextBox1.Text
num2 = TextBox2.Text
product = num1 + num2
Label1.Text = product
End Sub
De modo que al ejecutar el programa e ingresemos los numerous al dar click en el botón llevará
a cabo la suma de estos.
www.s-ejecutive.com
8
3- PROPIEDADES DE LOS CONTROLES
Antes de escribir un procedimiento de evento para los controles, debemos establecer ciertas
propiedades de los controles para definir la apariencia y como es que trabajará con los eventos.
El panel de propiedades (3.2) nos permiten definir estos parámetros en el modo diseño.
3.1
3.2: The Properties Window
El titulo de un formulario se define por medio de la propiedad Text del Formulario. Al igual que el
titulo el nombre del control puede cambiarse en la propiedad Name teniendo en cuenta que no se
deben utilizar espacios en el.
En el panel de propiedades, en la parte superior se muestra el nombre del objeto seleccionado. En
el resto de las filas se muestran de lado izquierdo los nombres de las propiedades y de lado
derecho los valores predeterminados que traen consigo los controles.
Tambien podemos cambiar las propiedades en modo de ejecución tales como, cambiar el color,
forma, efectos de animación y algunas mas. El siguiente ejemplo cambia el color a amarillo cada
vez que el formulario se carga. Visual Basic utiliza RGB para determinar los colores o bien
algunos colores prestablecidos con nombre propio. La propiedad BackColor refiere del color de
fondo de un objeto, en este caso se cambia el color de fondo del formulario
www.s-ejecutive.com
9
La formula para asignar el color RGB al formulario es Color.FormArbg(RGB valores).
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Me.BackColor = Color.FromArgb(255, 0, 255)
End Sub
End Class
También podemos usar el siguiente procedimiento para cambiar el color en modo de
ejecucion.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Me.BackColor = Color.Magenta
End Sub
Ambos procedimientos cambiarán el color de fondo del formulario una vez que se ejecute como
se muestra en el ejemplo
Enseguida se muestran algunos de los colores mas comunes con su código
correspondiente. Siempre podemos jugar con varias combinaciones sin olvidar que los
valores de los 3 colores RGB van de 0 hasta 255 como maximo.
Colo
Colo
RGB code
Color
RGB code
RGB Code
r
r
255,0,0
255, 255, 0
255, 165, 0
0,255,0
0, 255, 255
0, 0, 0
0, 0, 255
255, 0, 255
255, 255, 255
www.s-ejecutive.com
10
El siguiente programa nos permite ingresar los valores para cada color en 3 textbox diferentes
y al dar click en el boton se cambiará el color de fondo del formulario
Codigo
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim rgb1, rgb2, rgb3 As Integer
rgb1 = TextBox1.Text
rgb2 = TextBox2.Text
rgb3 = TextBox3.Text
Me.BackColor = Color.FromArgb(rgb1, rgb2, rgb3)
End Sub
www.s-ejecutive.com
11
4- PROGRAMACION ORIENTADA A OBJETOS
En las primeras 3 lecciones hemos aprendido como ingresar codigo y ejecutarlo, sin entender al
100% la logica que se ha llevado a cabo. Ahora aprenderemos algunas reglas básicas que nos
permitan entender la lógica con la que se va a programar. Antes que anda debemos entender que
un lenguaje de POO debe contar con 3 tecnologias importantes(Encapsulación, Herencia y
polimorfismo) mismas que se definen a continuación.
ENCAPSULACION.- se refiere a modulos autocontenedores que unen funciones procesadas a los
datos. Estos tipos definidos por usuarios son llamados clases. Cada clase cuenta con datos y
metodosque manipulan los datos. Los componentes de datos de una clase son llamados variables
de instancias y una instancia de clase es un objeto. Por ejemplo, un sistema de librería, una clase
podría ser un miembro, Carlos y Adriana serían 2 instancias(Objetos) de una clase de librería.
HERENCIA.- Las clases son creadas basadas en jerarquías y las herencias permiten a la
estructura y los métodos heredar procesos y datos. Esto significa menos programación en
sistemas complejos. Si un paso es agregado al final del código, entonces solo los datos y procesos
asociados a este deben agregarse. El resto del paso es heredado. La habilidad de reusar objetos
existents es considerada la major ventaja de esta tecnologia.
Polimorfismo.- La POO permite procedimientos para la creación de objetos un mismo tipo, que no
están definidos hasta el modo de ejecución. Por ejemplo, un cursor en en la pantalla puede
cambiar su forma de una flecha a una línea dependiendo del modo de programa.
Visual Basic 2010 permite a los usuarios escribir programas que se dividen en módulos. Estos
modulos representan en el mundo real objetos y son conocidos como clases o tipos. Un objeto
puede ser creado fuera de la clase se denomina instancia de clase. Una clase puede tener
subclases. Por ejemplo, arboles de manzana es una subclase de la clase plantas y la manzana es
una instancia de la clase de árbol de manzanas. Otro ejemplo es Estudiantes una subclase de la
clase humano mientras Un chico llamado Armando es una instancia de la clase estudiante.
Una clase consiste en miembros de datos y métodos. La estructura en vb2010 para definir la clase
humano podrías escribirse de la siguiente forma.
Public Class Human
'Data Members
Private Name As String
Private Birthdate As String
Private Gender As String
Private Age As Integer
'Methods
Overridable Sub ShowInfo( )
MessageBox.Show(Name)
MessageBox.Show(Birthdate)
www.s-ejecutive.com
12
MessageBox.Show(Gender)
MessageBox.Show(Age)
End Sub
End Class
Despues de haber creado la clase humano, podemos crear una subclase que herede los
atributos de datos de la clase humano. Por ejemplo, podríamos crear subclases de la clase
humano sin necesidad de redefinir los miembros de datos.
After you have created the human class, you can create a subclass that inherits the attributes or
data from the human class. For example, you can create a students class that is a subclass of
the human class. Under the student class, you don't have to define any data fields that are
already defined under the human class, you only have to define the data fields that are different
from an instance of the human class.
Por ejemplo podriamos incluir el ID de estudiante y la direccion dentro de la subclase estudiante.
El código seria como el siguiente.
Public Class Students
Inherits Human
Public StudentID as String
Public Address As String
Overrides Sub ShowInfo( )
MessageBox.Show(Name)
MessageBox.Show(StudentID)
MessageBox.Show(Birthdate)
MessageBox.Show(Gender)
MessageBox.Show(Age)
MessageBox.Show(Address)
End Sub
www.s-ejecutive.com
13
5- ESCRIBIENDO EL CODIGO
En los módulos anteriores hemos visto la definición de las tecnologías de la programación
orientada a objetos, asi como algunos códigos muy sencillos.
5.1 Procedimientos de evento
VB2010 es un lenguaje que aparte de ser POO se basa en programación de eventos. De hecho,
todas las aplicaciones de Windows son manejadas por eventos. Manejados por eventos significa
que el usuario decide que hacer en el programa. Ya sea dar un click, escribir en un textbox, cerrar
un cuadro, etc. Un evento esta relacionado a un objeto, es un incidente que pasa cuando el objeto
y el usuario interactúan. Tal como dar click en un botón ó presionar una tecla. Una clase tiene
eventos que se crean tanto con instancias de una clase u objetos. Al iniciar una aplicación de
Windows vemos como se muestra un formulario vacio en el entorno de VB2010, este es de hecho
la primer clase de formulario que hereda todos sus atributos desde la clase form
System.Windows.Forms.Form, tal como se muestra en el panel de propiedades del Form1.
www.s-ejecutive.com
14
Al dar doble click en algún lugar del formulario, veremos la ventana de código como se ve a
continuación. Se muestra el objeto en el que dimos click. En este caso el evento es load form
(cargar formulario) mismo que empieza con Private Sub y termina con End sub. Este procedimiento
incluye la clase form y el evento Load, y estos están unidos por un guion bajo. Form_load esto no
hace otra cosa mas que cargar el formulario.
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Existen otros eventos ligados al objeto Form como al dar click, al cambiar el cursor, al dar doble
click, al arrastrarlo entre otras.
www.s-ejecutive.com
15
5.2 Escribiendo codigo
Ahora estamos listos para escribir el codigo para un procedimiento de evento que haga algo ams
que solo cargar el formulario vacio. Todo el código debe encontrarse entre Private Sub y End sub.
Agreguemos el siguiente código.
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) H
andles MyBase.Load
Me.Text = "My First VB2010 Program"
Me.ForeColor = Color.ForestGreen
Me.BackColor = Color.Cyan
End Sub
End Classs
La primera linea de codigo cambia el titulo del formulario
La segunda línea cambia el color de fuente a verde bosque
Cabe mencionar que utilizar la palabra Se me refiere al formulario mismo por lo que si necesitamos
cambiar estas propiedades de otros objetos debemos cambiar Me por el nombre del control
www.s-ejecutive.com
16
Aca otro ejemplo
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim name1, name2, name3 As String
name1 = "John"
name2 = "Georges"
name3 = "Ali"
MsgBox(" The names are " & name1 & " , " & name2 & " and " & name3)
End Sub
En este ejemplo insertamos un boton en el formulario y cambiamos su texto a Display hidden
names. La palabra clave Dim permite declarar las variables dentro de la rutina con un tipo de
datos, por lo que las variables name1, name2 y name3 solo pueden contener texto (string). La
función msgbox permite mostrar un cuadr de dialogo emergente con el mensaje entrecomillado
unido a los nombres establecidos en las variables.
www.s-ejecutive.com
17
www.s-ejecutive.com
18
6-Manejando Datos
Existen muchos tipos de datos mismos que manejamos a diario en la vida real. Por ejemplo
necesitamos manejar datos como nombres, direcciones, dinero, fechas, cantidades, estadísticas,
etc. Al igual que en la vida cotidiana en VB debemos tener el control y orden de estos tipos de
datos, algunos pueden ser matematicos, mien tras otros pueden contener textos.
VB clasifica los tipos de datos en 2 grandes tipos que son numéricos y no-numéricos.
Tipos Numéricos
Los tipos numéricos son tipos de datos que consisten en números, mismos que puedan ser
computados matemáticamente con varios operadores estándar tales como la suma, resta, división
y otras mas.
Algunos ejemplos de este tipo de datos pueden ser calificaciones, peso, altura, el numero de
estudiantes en una clase, valores compartidos, costo de productos, pagos mensuales y muchos
mas.En VB los tipos numéricos están divididos en 7 subtipos, dependiendo del rango de valores se
pueden alojar. Hay cálculos que requieren números redondeados o datos sin precisión decimal
pueden ser de tipo Integer o Long integer dependiendo de la longitud de valores.
Programas que requieren números de alta precisión necesitan declararse como Single y Double,
estos también son conocidos como flotantes.
Para cálculos de dinero podemos utilizar Currency.
Si por otro lado necesitamos aun mayor precisión en tanto a decimales, el tipo correspondiente es
Decimal
6.1: Tipos de datos numericos
Type
Byte
Integer
Long
Storage
1 byte
2 bytes
4 bytes
Single
4 bytes
Double
8 bytes
Currency 8 bytes
Decimal
12 bytes
Range of Values
0 to 255
-32,768 to 32,767
-2,147,483,648 to 2,147,483,648
-3.402823E+38 to -1.401298E-45 for negative values
1.401298E-45 to 3.402823E+38 for positive values.
-1.79769313486232e+308 to -4.94065645841247E-324 for negative values
4.94065645841247E-324 to 1.79769313486232e+308 for positive values.
-922,337,203,685,477.5808 to 922,337,203,685,477.5807
+/- 79,228,162,514,264,337,593,543,950,335 if no decimal is use
+/- 7.9228162514264337593543950335 (28 decimal places).
www.s-ejecutive.com
19
6.1.2 Tipos de datos no-numericos
Los tipos de datos no numéricos son datos que no pueden ser manipulados matemáticamente
usando operadores aritméticos. Los datos no-numericos comprenden textos o cadenas de
caracteres, fechas, booleanos que solo alojan 2 valores (true o false), objetos y variant.
6.2: Nonnumeric Data Types
Data Type
String(fixed length)
String(variable length)
Storage
Length of string
Length + 10 bytes
Date
8 bytes
Boolean
Object
Variant(numeric)
Variant(text)
2 bytes
4 bytes
16 bytes
Length+22 bytes
Range
1 to 65,400 characters
0 to 2 billion characters
January 1, 100 to December 31,
9999
True or False
Any embedded object
Any value as large as Double
Same as variable-length string
6.1.3 Sufijos para literals
Las literales son valores que asignamos a datos. En algunos casos, necesitamos agregar sufijos
antes de las literales de modo que VB pueda manejar los cálculos. Por ejemplo podemos usar
num=1.3089# para un tipo Double. Estos son algunos de los sufijos 6.3.
Table 6.3
Suffix
&
!
#
@
Data Type
Long
Single
Double
Currency
En adición necesitamos encerrar las de cadenzas con comillas dobles y las literales de fecha y
hora con doble signo # . las cadenas pueden contener cualquier carácter, incluyendo números.
memberName="Turban, John."
TelNumber="1800-900-888-777"
LastDay=#31-Dec-00#
ExpTime=#12:00 am#
www.s-ejecutive.com
20
6.2. Manejo de Variables
Las variables son como buzones de correo en la oficina postal. El contenido de variables cambia
en todo momento, tal como lo hacen los buzones. Las variables son areas alojadas enla memoria
de la computadora para retener información. Tal como los buzones, cada variable debe tener un
nombre. Por lo que cada nombre debe respetar las siguientes reglas.
6.2.1 nombres de variables
Reglas para nombrar variables




Debe tener menos de 255 caracteres
No se permiten espacios
No pueden empezar con números
No se permiten puntos
Estos son algunos ejemplos de nombres validos e inválidos
Table 6.4
Valid Name
My_Car
ThisYear
Long_Name_Can_beUSE
Invalid Name
My.Car
1NewBoy
He&HisFather
*& is not acceptable
6.2.2. Declaración de variables
En VB necesitamos declarar las variables antes de usarlas asignándoles simultáneamente un
nombre y los tipos de datos. Si fallamos al realizar este procedimiento el programa mostrará un
error. Estas son normalmente declaradas en la sección general de códigos utilizando el estado
Dim.
El formato debe ser el siguiente
Dim Variable Name As Data Type
Ejemplo 6.1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Dim password As String
Dim yourName As String
Dim firstnum As Integer
Dim secondnum As Integer
Dim total As Integer
Dim doDate As Date
www.s-ejecutive.com
21
End Sub
Podemos tambien combinarlas en una sola linea separándolas por comas
Dim password As String, yourName As String, firstnum As Integer,.............
Para la declaración de cadenas, hay 2 formatos posibles, uno de ellos para la longitud variable de
la variable y la otra para la longitud fija de la variable. Para las cadenas de longitud variable basta
con usar el formato del ejemplo 6.1 anterior. Para la longitud fija de las cadenas se debe usar el
siguiente formato
Dim VariableName as String * n, donde n define el numero de caracteres que la cadena puede
alojar.
Ejemplo 6.2:
Dim yourName as String * 10
yourName no puede alojar mas de 10 caracteres
6.2.3 Asignación de valores a variables
Despues de declarar varias variables, podemos asignar valores a todas estas variables. El
formato general de asignación es el siguiente:
Variable=Expression
La variable puede ser una variable declarada o el valor de la propiedad de un control. La expresión
puede ser una expresión matematica, un numero, una cadena, un valor booleano, etc. Estos son
algunos ejemplos:
firstNumber=100
secondNumber=firstNumber-99
userName="John Lyan"
userpass.Text = password
Label1.Visible = True
Command1.Visible = false
Label4.Caption = textbox1.Text
ThirdNumber = Val(usernum1.Text)
total = firstNumber + secondNumber+ThirdNumber
www.s-ejecutive.com
22
6.3. Constantes
Las constants difieren de las variables en el sentido de que sus valores no cambian mientras se
ejecuta el programa.
6.3.1 Declaración de constantes
El formato es:
Const Constant Name As Data Type = Value
Ejemplo 6.3
Private Sub Form1_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
Const Pi As Single=3.142
Const Temp As Single=37
Const Score As Single=100
End Sub
www.s-ejecutive.com
23
7- Operadores Matematicos
La computadora puede realizar cálculos matematicos mucho mas rápido que un ser humano. De
cualquier forma la computadora por si sola no es capaz de cálculos matematicos sin recibir
instrucciones del usuario.en VB podemos escribir código para instruir a la computadora a que
realice cálculos matematicos tales como una suma, resta, multiplicación, división y otro tipo de
operaciones aritméticos.
Con el fin de realizar cálculos matemáticos debemos involucrar varios operadores aritméticos. Los
operadores aritméticos son muy similares a los utilizados en la vida cotidiana con solo algunas
variaciones minimas. Los signos de mas y menos son los mismos mientras la multiplicación y la
división usan * y / respectivamente.
7.1: Arithmetic Operators
Operator Mathematical function
Example
+
Suma
1+2=3
--
Resta
4-1=3
^
Potencia
2^4=16
*
Multiplicacion
4*3=12, (5*6))2=60
/
Division
12/4=3
Mod
Modulo
15 Mod 4=3
División de enteros
19\4=4
\
255 mod 10=5
Ejemplo 7.1
En este programa, necesitamos insertar 2 textbox, 4 etiquetas y un botón. Notar como los varios
operadores aritméticos son usados dentro del código. Cuando ejecutas el programa, ralizará las 4
operaciones básicas y mostrará los resultados en las etiquetas.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim num1, num2, difference, product, quotient As Single
num1 = TextBox1.Text
num2 = TextBox2.Text
sum=num1+num2
difference=num1-num2
product = num1 * num2
quotient=num1/num2
Label1.Text=sum
www.s-ejecutive.com
24
Label2.Text=difference
Label3.Text = product
Label4.Text = quotient
End Sub
Ejemplo 7.2
El programa puede usar el teorema de Pitagoras para calcular la longitud de la hipotenusa,
indicando la longitud de los lados adyacente (catetos). En caso de haber olvidado la formulad del
teorema de Pitagoras se muestra a continuación.
c^2=a^2+b^2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim a, b, c As Single
a = TextBox1.Text
b = TextBox2.Text
c=(a^2+b^2)^(1/2)
Label3.Text=c
End Sub
Ejemplo 7.3 IMC (Indice de masa corporal)
Mucha gente esta obesa y podría ver afectada su salud seriamente. La obesidad es uno de los
principales factores que brinda muchos problemas médicos según los expertos médicos.
Incluyendo muerte por paro cardiaco. Si el IMC es mayor a 30, una persona es considerada obesa.
Nos podemos basar en la siguiente tabla para conocer el estado del peso.




Underweight = <18.5
Normal weight = 18.5-24.9
Overweight = 25-29.9
Obesity = BMI of 30 or greater
Para calular el IMC, no tenemos que consultar al doctor, podemos solo usar un calculador o un
programa hecho para computadora, esto precisamente es lo que pretendemos realizar. El
calculador IMC es un programa VB que puede calcular el índice de masa corporal. Para calcular el
IMC debemos usar la formula peso/(altura)2 , donde el peso es medido en kg y la altura en metros.
Si solo sabemos el peso y la altura en libras y pies, entonces tendremos que convertirlos al sistema
métrico (podríamos incluir estos cálculos dentro de nuestro sistema)
www.s-ejecutive.com
25
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArsgs)
Handles Button1.Click
Dim height, weight, bmi As Single
height = TextBox1.Text
weight = TextBox2.Text
bmi = (weight) / (height ^ 2)
Label4.Text = bmi
End Sub
La salida es mostrada en el siguiente diagrama. En este ejemplo la altura es de 1.8 mts(alrededor
de 5 pies 11 pulgadas). El peso es de 75 kg(alrededor de 168lb), y el IMC es de 23.14815. La
lectura sugiere que la persona es saludable
Del ejemplo anterior, podemos ver que las operaciones aritmeticas son relativamente faciles. Aquí
hay muchos proyectos aritméticos que podemos intentar.













Area of a triangle
Area of a rectangle
Area of a circle
Volume of a cylinder
Volume of a cone
Volume of a sphere
Compound interest
Future value
Mean
Variance
Sum of angles in polygons
Conversion of lb to kg
Conversion of Fahrenheit to Celsius
www.s-ejecutive.com
26
8- MANIPULACION DE CADENAS
La manipulación de cadenas es una parte importante de la programación porque ayuda a procesar
datos que vienen en el formulario como nombre, dirección, genero, ciudad, titulo de libro y mas.
8.1. Manipulacion de cadenas usando + y &
Las cadenas pueden ser manipuladas usando los signos & y +, ambos llevan a cabo la
concatenación que significa combinar 2 o mas cadenas en una sola mas grande. Por ejemplo,
podemos unir visual y basic en visualbasic usando “visual” & “basic” o” visual “+ “basic “como se
muestra a continuación.
Ejemplo 8.1
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim text1, text2, text3 As String
text1 = "Visual"
text2 = "Basic"
text3 = text1 + text2
Label1.Text = text3
End Sub
End Class
La linea text3=text1+text2 puede reemplazarse por text3=text1&text2 y produciría el mismo
resultado. En caso de que los datos fueran de tipo numérico solo podríamos utilizar el signo & pues
generarn diferente resultado.
Ejemplo 8.2
Dim text1, text3 as string
Dim Text2 As Integer
text1 = "Visual"
text2=22
text3=text1+text2
Label1.Text = text3
Este codigo produce un error porque los datos no coinciden. En caso de utilizar & en lugar de +
estaría bien .
Dim text1, text3 as string
www.s-ejecutive.com
27
Dim Text2 As Integer
text1 = "Visual"
text2=22
text3=text1 & text2
Label1.Text = text3
Puedes combinar mas de 2 cadenas como en el ejemplo siguiente
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim text1, text2, text3, text4, text5, text6 As String
text1 = "Welcome"
text2 = " to"
text3 = " Visual"
text4 = " Basic"
text5 = " 2010"
text6 = text1 + text2 + text3+text4+text5
Label1.Text = text6
End Sub
End Class
8.2 La function Right
La función Right extrae una parte de una cadena desde la derecha, el formato es:
Right(“cadena”,n)
Donde n corresponde al numero de caracteres que se desean extraer.p.e.
Right(“Ciudad de Mexico”,5)
Daría como resultado exico.
www.s-ejecutive.com
28
Sin embargo la sintaxis del lenguaje nos obliga a escribirlo en el siguiente formato
Microsoft.VisualBasic.Right("Phrase",n)
Ejemplo 8.3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim text1 As String
text1 = TextBox1.Text
Label1.Text = Microsoft.VisualBasic.Right(text1, 4)
End Sub
El ejemplo anterior da como resultado los cuatro caracteres del contenido del textbox comenzando
desde la derecha
El motivo por el cual debe usarse la referencia completa es debido a que muchos objetos cuentan
con la propiedad Right por lo que el lenguaje no podría indentificar a cual se refiere.
8.2 La función Left
Ésta función trabaja de la misma forma que Right pero extrayendo caracteres desde la izquierda
Microsoft.VisualBasic.Left("Cadena",n)
Considerando el ejemplo anterior la sintaxis funcionaria asi:
www.s-ejecutive.com
29
Microsoft.VisualBasic.Left ("Visual Basic", 4) = Visu .
8.2 Manipulación de cadenas usando funciones integradas
Una función es similar a un procedimiento normal pero el principal propósito de una función es
aceptar ciertas entradas y retornar un valor que se pase al programa principal para terminar la
ejecución.
8.2. La función Len
La función Length regresa un valor entero mismo que corresponde a la longitud de una cadena o
una frase, incluyendo los espacios vacios. El formato es:
Len(“Cadena”)
Por ejemplo:
Len (Visual Basic) = 12 and Len (welcome to VB tutorial) = 22
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Label1.Text = Len(TextBox1.Text)
End Sub
End Class
www.s-ejecutive.com
30
www.s-ejecutive.com
31
9- USANDO If....Then....Else
Hasta ahora hemos aprendido como como programara codigo para aceptar informacion de los
usuarios y mostrar un resultado sin controlar el flujo del programa. En este capitulo, aprederemos a
escribir código que pueda tomar desiciones al procesar los datos de los usuarios, y y controlar el
flujo del programa en el proceso. El proceso de tomar desiciones es una parte importante de la
programación porque ayuda a resolver problemas inteligentemente de manera que provea salida
de datos útil para el usuario.
Por ejemplo podemos escribir un programa que pueda preguntar a la computadors para realizar
varias tareas mientras se cumplan las condiciones o un programa que rechace valores no
numéricos. En orden de llevar el control del flujo de programación y tomar desiciones, necesitamos
usar operadores condicionales y operadores lógicos juntos con la estructura de control If.
9.1 Operadores condicionales
Los operadores condicionales con herramientas muy poderosas. Estos operadores permiten a VB
programar para comparar valores de datos y después decidir que acciones tomar, tales como
ejecutar un programa o incluso finalizarlo entre muchas mas. Estos también son conocidos
operadores de comparación numérica. Normalmente son usados para comparar 2 valores para ver
si son iguales o si uno es mayor o menor que otro. La comparación retornará true o false según
sea el caso. La siguiente tabla muestra los operadores condicionales.
Tabla 9.1: Operadores Condicionales
Operator
Meaning
=
Igual a
>
Mayor que
<
Menor que
>=
Mayor o igual que
<=
Menor o igual que
<>
Diferente a
9.2 Operadores logicos
Algunas veces podamos necesitar hacer mas de una comparación de tomar desiciones y realizar
acciones. En este caso, usando operadores de comparación numérica solos no es suficiente,
necesitamos usa operadores adicionales, y estos son los operadores lógicos. Estos operadores se
muestran enseguida.
Tabla 9.2
www.s-ejecutive.com
32
Operador
And
or
Xor
Not
Significado
Ambas condiciones deben ser true
Al menos una condicion debe ser true
Solo una condicion debe ser true
Niega el true
Normalmente los operadores son utilizados para comparar datos numéricos. De cualquier forma
también podemos comparar cadenas de caracteres con estos operadores. La comparar cadenas
hay algunas reglas que debemos toamr en cuenta.
Las mayusculas con menores que las minúsculas, "A"<"B"<"C"<"D".......<"Z" y los numerosson
menores que las letras.
9.3 If con operadores de comparación
Para controlar efectivamente el flujo de programación. Debemos usar la estructura de control If
junto a operadores lógicos y condicionales. Basicamente hay 3 tipos de estructuras de control If,
If…. Then , else y If… then…elseIf.
9.3 El estado If
Este es el estado mas simple de la estructura If ya que pide a la computadora que desarrolle
ciertas acciones especificadas por expresiones si la condición se cumple. Mientras que si no se
cumple la condición ninguna acción se llevará a cabo. El formato general de If es el siguiente
If condicion Then
Expresion
End If
Ejemplo 9.1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim myNumber As Integer
myNumber = TextBox1.Text
If myNumber > 100 Then
Label2.Text = " Has ganado el premio mayor "
End If
End Sub
Al ejecutar el programa e ingresar un numero mayor a 100, veremos “Has ganado el premio
mayor”. Por otro lado, si el numero es menor o igual a 100 no veremos nada.
9.3 If Then else
Al usar If… then en la programación no son muy utiles y no proveen muchas opciones a los
usuarios. Para brindar opciones, podemos usar If…Then..else. esta estructura de control pide al
computador que realice ciertas acciones especificadas en expresiones si la condicion es
verdadera. Si la condición no se cumple, se pueden ejecutar expresiones declaradas en el estado
Else. El formato es:
www.s-ejecutive.com
33
If condicion Then
expresion
Else
expresion
End If
Ejemplo 9.2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim myNumber As Integer
myNumber = TextBox1.Text
If myNumber > 100 Then
Label2.Text = " Felicidades has ganado el premio mayor "
Else
Label2.Text = " Disculpa, pero no ganaste "
End If
End Sub
Cuando ingresemos un valor mayor de 100 se mostrará la leyenda “Felicidades has ganado el
premio mayor” y si no se cumple la condición se mostrará la leyenda “Disculpa, pero no ganaste”
ejemplo 9.3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim myNumber, MyAge As Integer
myNumber = TextBox1.Text
MyAge = TextBox2.Text
If myNumber > 100 And myAge > 60 Then
Label2.Text = " Felicidades has ganado el premio mayor "
Else
Label2.Text = " Disculpa, pero no ganaste "
End If
End Sub
Este programa usa operadores logicos entrre las condiciones. Esto significa que amabs
condiciones deben cumplirse para que se cumpla la condición.
9.3 Estado If....Then...ElseIf
si hay mas de 2 opciones, podemos usar if…then…elseif… de manera que tengamos mas
opciones.el formato es:
If condition Then
VB expression
www.s-ejecutive.com
34
ElseIf condition Then
VB expression
ElseIf condition Then
VB expression
.
.
Else
VB expression
End If
Ejemplo 9.4
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim Mark As Integer
Dim Grade as String
Mark = TextBox1.Text
If myNumber >=80 Then
Grade="A"
ElseIf Mark>=60 and Mark<80 then
Grade="B"
ElseIf Mark>=40 and Mark<60 then
Grade="C"
Else
Grade="D"
End If
End Sub
www.s-ejecutive.com
35
10- USANDO SELECT CASE
Otra estructura de control es Select case que difiere del If por la manera en que trabaja. La
diferencia es que Select case básicamente solo evalua un objeto en una expresión de una
dimensión. Mientras que if …. Else if puede manejar multiples condiciones y de varias
dimensiones. Select case es utilizado cuando existen multiples condiciones dado que ocupa
mucho menos código que If…else if.
10.1 La estructura de Select case
El formato de esta estructura es el siguiente.Select Case test expression
Case expression list 1
Block of one or more VB statements
Case expression list 2
Block of one or more VB Statements
Case expression list 3
Block of one or more VB statements
Case expression list 4
.
Case Else
Block of one or more VB Statements
End Select
10.1 Uso de Select Case
Ejemplo 10.1
' Examinación de grados
Dim grade As String
Private Sub Compute_Click( )
grade=txtgrade.Text
Select Case grade
Case "A"
Label1.Text="High Distinction"
Case "A-"
www.s-ejecutive.com
36
Label1.Text="Distinction"
Case "B"
Label1.Text="Credit"
Case "C"
Label1.Text="Pass"
Case Else
Label1.Text="Fail"
End Select
Ejemplo 10.2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
'Examinacion de calificaciones
Dim mark As Single
mark = mrk.Text
Select Case mark
Case Is >= 85
Label1.Text= "Excellence"
Case Is >= 70
Label2.Text= "Good"
Case Is >= 60
Label3.Text = "Above Average"
Case Is >= 50
Label4.Text= "Average"
Case Else
Label5.Text = "Need to work harder"
End Select
End Sub
Ejemplo 10.3
El Ejemplo 10.2 puede reescribirse de la sig. manera:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
'Examinacion de calificaciones
Dim mark As Single
www.s-ejecutive.com
37
mark = Textbox1.Text
Select Case mark
Case 0 to 49
Label1.Text = "Need to work harder"
Case 50 to 59
Label1.Text = "Average" s
Case 60 to 69
Label1.Text= "Above Average"
Case 70 to 84
Label1.Text = "Good"
Case 85 to 100
Label1.Text= "Excellence"
Case Else
Label1.Text= "Wrong entry, please reenter the mark"
End Select
End Sub
Ejemplo 10.4
Los gfrados en preparatoria son presentados usualmente mostradas con la letras en mayúsculas
tales como A,B,C,D o E, en el ejemplo podemos ver como seria un código para este proceso.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventA
rgs) HandlesButton1.Click
'Examination Marks
Dim mark As Single
mark = TextBox1.Text
Select Case mark
Case 0 To 49
Label1.Text = "E"
Case 50 To 59
Label1.Text = "D"
Case 60 To 69
Label1.Text = "C"
Case 70 To 79
Label1.Text = "B"
Case 80 To 100
Label1.Text = "A"
Case Else
Label1.Text = "Error, please reenter the mark"
End Select
www.s-ejecutive.com
38
End Sub
Resultado del Ejemplo 10.4
www.s-ejecutive.com
39
11- LOOPING
VB 2010 permite que un proceso sea repetido cuanta veces sea necesario y tanto el procesador
como la memoria lo permitan. A este proceso se le llama looping (bucles). El looping se realice
cuando necesitamos repetir un proceso varias veces mientras se cumpla una condición.
Por ejemplo podemos diseñar un programa que sume una serie de numeros mientras la cantidad
no exceda cierta cantidad, o un programa que solicite al usuario que introduzca datos
repetidamente hasta que el usuario teclee la palabra finish. En vb2010, tenemos 3 tipos de bucles,
son For…Next, Do… y While…End while.
11.1 For….Next
La sintaxis es:
For
contador
sentencias
=
valor
inicial
to
valor
final(valor
incremento)
Next
En algunos ocasiones es necesario salir del bucle sin que se cumpla el ciclo completo, el comando
para hacerlo es Exit for. Es muy usual agregar Exit for dentro de un If para determinar si es
necesario salir del bucle.
Ejemplo 11.1 (a)
Dim counter as Integer
For counter=1 to 10
ListBox1.Items.Add (counter)
Next
* El programa inserta numerous del 1 al 10 en un listbox.
Ejemplo 11.1 (b)
Dim counter , sum As Integer
For counter=1 to 100 step 10
sum+=counter
ListBox1.Items.Add (sum)
Next
* El programa calcula la suma de los numeros como se muestra enseguida:
sum=0+10+20+30+40+......
Ejemplo 11.1(c)
www.s-ejecutive.com
40
Dim counter, sum As Integer
sum = 1000
For counter = 100 To 5 Step -5
sum - = counter
ListBox1.Items.Add(sum)
Next
*Nota.- El incremento puede ser negative. El programa procesará una resta como la
siguiente.
1000-100-95-90-..........
Ejemplo 11.1 (d)
Dim n as Integer
For n=1 to 10
If n>6 then
Exit For
End If
Else
ListBox1.Items.Add ( n)
Next
End If
Next
El proceso tarminará cuando n sea mayor que 6
11.2. Do
El formato de Do es:
a) Do While condición
sentencias
Loop
b) Do
www.s-ejecutive.com
41
sentencias
Loop While condition
c)
Do Until condición
sentencias
Loop
d)
Do
sentencias
Loop Until condición
* Salir del bucle
Al igual que for a veces es necesario salir del bucle de manera anticipada, el comando usado es
Exit Do.
Ejeplo 11.2(a)
Do while counter <=1000
TextBox1.Text=counter
counter +=1
Loop
* este código incrementará la counter en 1 mientras sea menor de 1000.
Otra forma sería como esta:
Do
TextBox1.Text=counter
counter+=1
Loop until counter>1000
Ejemplo 11.2(b)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim sum, n As Integer
www.s-ejecutive.com
42
ListBox1.Items.Add("n" & vbTab & "Sum")
ListBox1.Items.Add("----------------------")
Do
n += 1
sum += n
ListBox1.Items.Add(n & vbTab & sum)
If n = 100 Then
Exit Do
End If
Loop
End Sub
En este ejemplo encontramos una suma 1+2+3+4+......+100. En Diseño , necesitamos agregar un
listbox al formulario para mostrar la salida. El programa usa el método Add para llenar el listbox.La
sentencia ListBox1.Items.Add("n" & vbTab & "sum")mostrará los encabezados en el listbox,
donde se utiliza vbTab para poner espacios entre el encabezado n y la suma.
ListBox1.Items.Add(n & vbTab & sum) enlistará los numerous n y el valor de la suma.
www.s-ejecutive.com
43
11.3 While….End while
La estructura While es muy similar a Do…
While condición
sentencias
End white
En este caso si la condición se cumple se llevarán a cabo las sentencias designadas, el bucle
terminará cuando la condición se cumpla .
Ejemplo11.3
Dim sum, n As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim sum, n As Integer
While n <> 100
n += 1
sum = sum + n
ListBox1.Items.Add(n & vbTab & sum)
End While
End Sub
www.s-ejecutive.com
44
12- FUNCIONES
Una función se similar a un proceso normal pero con el propósito de aceptar ciertos parámetros y
regresar un resultado para finalizar la ejecución. Hay 2 tipos de funciones, las incorporadas del
lenguaje y las creadas por el programador.
El formato general para crear funciones es:
FunctionName (parametros)
Los parámetros con valores pasados al interior de la función. Podremos ver 2 funciones
incorporadas del lenguaje muy utiles, el MSGBOX y el INPUTBOX.
12.1 Msgbox()
El objetivo de los msgbox es mostrar un cuadro de dialogo para mostrar al usuario mensajes para
que no siga el programa hasta que den click en el botón aceptar.
yourMsg=MsgBox(Mensaje, estilo, titulo)
El primer argumento Mensaje muestra el mensaje en el centro del cuadro de dialogo. El estilo
determina que tipo de botones de comando se muestra el cuadro de dialogo, en la tabla 12.1 se
muestran
los posibles valores de este parámetro. El titulo muestra el titulo del cuadro.
Tabla 12.1 Estilo
Named Constant
Buttons Displayed
0
vbOkOnly
Ok button
1
vbOkCancel
Ok and Cancel buttons
2
vbAbortRetryIgnore
Abort, Retry and Ignore buttons.
3
vbYesNoCancel
Yes, No and Cancel buttons
4
vbYesNo
Yes and No buttons
5
vbRetryCancel
Retry and Cancel buttons
Style Value
Podemos usar constante en lugar de enteros para el segundo parámetro, tal como poner vbOkOnly
en lugar de 0.
Ejemplo.yourMsg=MsgBox( "Click OK to Proceed", 1, "Startup Menu")
y yourMsg=Msg("Click OK to Proceed". vbOkCancel,"Startup Menu") son lo mismo
www.s-ejecutive.com
45
your Msg es una variable que almacena el resultado de la function Msgbox. El valor depende del
tipo de botones usados por los usuarios. Estos tienen que ser declarados como enteros, la tabla
12.2 muestra los valores a las constantes correspondientes.
Tabla 12.2 Valores retornados por los botones de comando
Named Constant
Button
Clicked
1
vbOk
Ok
button
2
vbCancel
Cancel
button
3
vbAbort
Abort
button
4
vbRetry
Retry
button
5
vbIgnore
Ignore
button
6
vbYes
Yes
button
7
vbNo
No
button
Value
Ejemplo 12.1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim testmsg As Integer
testmsg = MsgBox("Click to test", 1, "Test message")
If testmsg = 1 Then
MessageBox.Show("You have clicked the OK button")
Else
MessageBox.Show("You have clicked the Cancel button")
End If
End Sub
www.s-ejecutive.com
46
Para mostrar los cuadros de dialogo de manera mas sofisticada, podemos agregar un icono que
preceda el mensaje. Existen varios tipos de iconos disponibles como se muestran en la tabla 12.3
Tabla 12.3 Msgbos con iconos
Value
Named Constant
16
vbCritical
32
vbQuestion
48
vbExclamation
64
vbInformation
Icon
Ejemplo 12.2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim testMsg As Integer
testMsg = MsgBox("Click to Test", vbYesNoCancel + vbExclamation, "Test Message")
If testMsg = 6 Then
MessageBox.Show("You have clicked the yes button")
ElseIf testMsg = 7 Then
MessageBox.Show("You have clicked the NO button")
Else
MessageBox.Show("You have clicked the Cancel button")
End If
End Sub
El primer argumento , mensaje mostrará el sig. Cuadro.-
www.s-ejecutive.com
47
12.2 INPUTBOX
Un Inputbox muestra al usuario un cuadro de dialogo en el que el usuario puede introducir datos.
myMessage=InputBox(Prompt, Title, default_text, x-position, y-position)
myMessage es tipo variant pero tipicamente declarado como string, el cual acepta el mensaje
ingresado por el usuario. Enseguida se definen los parámetros:




Prompt
- El mensaje se mostrará como una pregunta.
Title
- el titulo del Input Box.
default-text - el texto que se muestra de manera predeterminada en el campo de texto
x-position y y-position –la posición o las coordenadas del input box.
Microsoft.VisualBasic.InputBox(Prompt, Title, default_text, x-position, y-position)
Ejemplo 12.3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim userMsg As String
userMsg = Microsoft.VisualBasic.InputBox("What is your message?", "Message Entry Form",
"Enter your messge here", 500, 700)
If userMsg <> "" Then
MessageBox.Show(userMsg)
Else
MessageBox.Show("No Message")
End If
End Sub
El inputbox aparece como en el siguiente ejemplo
www.s-ejecutive.com
48
13- FUNCIONES II
En esta lección veremos algunas funciones adicionales a las ya vistas.
13.1 Función Mid
La función Mid es usada para extraer parte de una cadena tal como el formato lo indica.Mid(oración,posición,n)
Donde:

oración es la cadena de la cual se extrae parte del texto.

Posición Es la posición inicial del texto que se extraerá de la cadena.

n es el numero de caracteres que serán extraidos de la cadenas.
Ejemplo 13.1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim myPhrase As String
myPhrase = Microsoft.VisualBasic.InputBox("Enter your phrase")
Label1.Text = Mid(myPhrase, 2, 6)
End Sub
En el ejemplo cuando el usuario da click en el boton de commando, se muestra un inputbox
pidiendo al usuario que ingrese una frase. Despues de ingresar una frase y se presiona el botón
Aceptar, la etiqueta mostrará el texto extraido comenzando en la posición 2 y extrayendo 6
caracteres de modo que de el sig. Resultado.
www.s-ejecutive.com
49
13.2 Función Right
La función right extrae n numero de caracteres de una cadena tomando como inicio el
extremo derecho de la cadena.
Microsoft.Visualbasic.Right ("cadena", n)
Donde n equivale al numero de caracteres a extraer y cadena la cadena de la cual extraeremos los
caracteres.
Microsoft.Visualbasic.Right ("Visual Basic", 4) = asic
Ejemplo 13.2 el siguiente codigo extrae los ultimos 4 caracteres de cuqluier frase ingresada.
Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim myword As String
www.s-ejecutive.com
50
myword = TextBox1.Text
Label1.Text = Microsoft.VisualBasic.Right (myword, 4)
End Sub
13.3 Función Left
Al igual que la función Right extrae parte de la cadena solo que en esta ocasión toma como
referencia el extremo izquierdo.
Microsoft.Visualbasic.Right ("cadena", n)
Microsoft.Visualbasic.Left("Visual Basic", 4) = asic
Ejemplo 13.3
Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim myword As String
myword = TextBox1.Text
Label1.Text = Microsoft.VisualBasic.Left (myword, 4)
End Sub
13.4 Función Trim
La función Trim quita los espacios en blanco al inicio y al final de una cadena
Trim("Phrase")
www.s-ejecutive.com
51
p.e.
Trim (" Visual Basic
") = Visual basic
Ejemplo 13.4
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim myPhrase As String
myPhrase = Microsoft.VisualBasic.InputBox("Enter your phrase")
Label1.Text = Trim(myPhrase)
End Sub
13.5 Función Ltrim
La function ltrim quita los espacios en blanco al inicio de una cadena
Ltrim("Phrase")
.p.e. :
Ltrim ("
Visual Basic")= Visual basic
13.6 Función Rtrim
La function ltrim quita los espacios en blanco al final de una cadena
Rtrim("Phrase")
.p.e. :
Rtrim ("Visual Basic
")= Visual basic
www.s-ejecutive.com
52
13.7 Función InStr
La function InStr busca una subcadena, dentro de otra cadena y devuelve un entero con la posición
inicial de la subcadena dentro de la cadena.
Instr (n, cadena original,cadena a buscar)
Donde n es la posición en donde la función comenzará a buscar, cadena original es la cadena en
la que realizará la búsqueda y cadena a buscar es la cadena que buscará.
Instr(1, "Visual Basic","Basic")=8
Podemos escribir código como el siguiente:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Label1.Text = InStr(1, "Visual Basic", "Basic")
End Sub
13.8 Funciones UCase y LCase
La función Ucase convierte una cadena a mayúsculas mientras LCase la convierte en minúsculas
Microsoft.VisualBasic.UCase(cadena)
Microsoft.VisualBasic.LCase(cadena)
p.e.
Microsoft.VisualBasic.Ucase("Visual Basic") =VISUAL BASIC
Microsoft.VisualBasic.Lcase("Visual Basic") =visual basic
13.9 funciones Chr y Asc
www.s-ejecutive.com
53
La función Chr regresa una cadena que corresponde al código ASCII mientras que la función Asc
convierte el carácter ASCII al código ASCII correspondiente
Chr(charcode)
Y el format para la function Asc es
Asc(Character)
Ejemplos:
Chr(65)=A, Chr(122)=z, Chr(37)=% ,
Asc("B")=66, Asc("&")=38
www.s-ejecutive.com
54
14-FUNCIONES III (Math)
Dentro de los cálculos matemáticos es importante conocer las funciones matematicas que VB nos
brinda.
14.1 Función Abs
La función Abs regresa el valor absolute de un numero especifico.
Sintaxis
Math. Abs (numero)
* La palabra Mathindica que la función Abs pertenece a la clase Math.
14.2 funcion Exp
La function Exp de un numero esel exponent de n a la x potencia.
x
e . p.e., Exp(1)=e=2.71828182
Sintaxis Math.Exp (numero)
Ejemplo:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim num1, num2 As Single
num1 = TextBox1.Text
num2 = Math.Exp(num1)
Label1.Text = num2
End Sub
.
www.s-ejecutive.com
55
14.3 Función Fix
La function Fix trunca la parte decimal de un numero y regresa el entero inferior siguiente de éste.
Cuando el numero es negative, retornará el valor entero más proximo .p.e. , Fix(9.2)=9 Fix(-9.4)=-9
Ejemplo:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim num1, num2 As Single
num1 = TextBox1.Text
num2 = Fix(num1)
Label1.Text = num2
End Sub
14.4 función Int
La función Int convierte a entero cualquier numero cortando los decimales.p.e.
Int(2.4)=2, Int(6.9)=6 , Int(-5.7)=-6, Int(-99.8)=-100
14.5 función Log
La función Log regresa el logaritmo natural de un numero. P.e. , Log(10)=2.302585
Ejemplo:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim num1, num2 As Single
num1 = TextBox1.Text
num2 = Math.Log(num1)
Label1.Text = num2
www.s-ejecutive.com
56
End Sub
14.6 Función Rnd( )
La function Rnd es una function muy util cuando necesitamos realizar cambios arbitrarios de
valores sin necesidad de llevar un orden. la function Rnd regresa un valor aleatorio entre 0 y 1. Los
numero aleatorios no son muy utiles hasta que los convertimos a enteros.p.e. ,si necesitamos
obtener la salida aleatoria de 6 numeros enteros con un rango de 1 a 6 , podemos usar una
formula que después de obtener valores aleatorios decimales los convierta a aleatorios enteros.
Int(Rnd*6)+1.
Ejemplo:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim num as integer
Randomize( )
Num=Int(Rnd()*6)+1
Label1.Text=Num
End Sub
En este ejemplo la function Int(Rnd*6) generará un valor entero entre 0 y 5 debido a que la
function Int trunca la parte decimal del numero aleatorio convertido a entero. Despues suma 1,
obtendremos un valor aleatorio entre 1 y 6 cada vez que se de click en el botón. P.e. digamos que
un nue¿mero aleatorio como .98, despues de multiplicarlo por 6, se convertiría en 5.88, utilizando
la función Int(5.88) convertirá el valor a 5 y después al sumar 1 se convertirá en 6.
14.7 función Round
La function Round es la function que nos permite redondear un numero a x numero de decimales.
El Formato es Round (n, m) el cual redondea el numero n a m numero de decimales. P.e.,
Math.Round (7.2567, 2) =7.26
www.s-ejecutive.com
57
Ejemplo
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim num1, num2 As Single
num1 = TextBox1.Text
num2 = Math.Round(num1, 2)
Label1.Text = num2
End Sub
www.s-ejecutive.com
58
15- FUNCION FORMAT
La función format es una función muy poderosas ya que nos permite mostrar valores numéricos en
diversas formas.
Format (n, "style argument")
Donde n es un numero y el segundo argumento determina el estilo, acorde a la siguiente tabla.
Tabla 15.1 Lista de parámetros de estilo
Style
Explicación
Ejemplo
General
Permite mostrar un numero
Format(8972.234, "General
Number
sin separación entre millares
Number")=8972.234
Fixed
Muestra 2 unidades decimals
Format(8972.2, "Fixed")=8972.23
argument
y quita los separadores de
millares
Standard
Muestra un numero con
Format(6648972.265, "Standard")=
separador de millares y 2
6,648,972.27
puestos decimales
Currency
Muestra el numero con signo
Format(6648972.265, "Currency")=
de moneda al inicio del
$6,648,972.27
numero, muestra
separadores de millares y 2
unidades decimales
Percent
Convierte el numero a forma
Format(0.56324, "Percent")=56.32 %
porcentual aparte de poner el
signo % y redondearlo a 2
decimales.
Ejemplo 15.1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click, Button5.Click, Button4.Click, Button3.Click
Label1.Text = Format(8972.234, "General Number")
Label2.Text = Format(8972.2, "Fixed")
www.s-ejecutive.com
59
Label3.Text = Format(6648972.265, "Standard")
Label4.Text = Format(6648972.265, "Currency")
Label5.Text = Format(0.56324, "Percent")
End Sub
Resultado:
.
Format (n, "user's format")
Tambien conocida como function definida por el usuario, necesitamos definer algunos estilos de
format- en la siguiente lista se enlistan algunos ejemplos.
Tabla 15.2: formatos definidos por el usuario
Example
Explanation
Output
Format(781234.57,"0")
Redondea el numero complete sin
781235
separadores entre millares.
Format(781234.57,"0.0")
Redondea a un lugar decimal sin
781234.6
separadores de .
Format(781234.576,"0.00")
Redonde a 2 decimales sin separadores
781234.58
de millares.
Format(781234.576,"#,##0.00")
Redondea a 2 decimales con
www.s-ejecutive.com
781,234.58
60
separadores de .
Format(781234.576,"$#,##0.00")
Muestra el signo de moneda y redondea
$781,234.58
a 2 decimales con separadores de
millares.
Format(0.576,"0%")
Convierte a forma de porcentaje sin
58%
decimales.
Format(0.5768,"0.00%")
Convierte a forma porcentual con 2
57.68%
decimales.
Ejemplo 15.2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click, Button5.Click, Button4.Click, Button3.Click
Label1.Text = Format(8972.234, "0.0")
Label2.Text = Format(8972.2345, "0.00")
Label3.Text = Format(6648972.265, "#,##0.00")
Label4.Text = Format(6648972.265, "$#,##0.00")
Label5.Text = Format(0.56324, "0%")
End Sub
Resultado:
<=
www.s-ejecutive.com
61
16- FUNCIONES IV: FORMATO DE FECHA Y HORA
Las FECHAS Y HORAS pueden ser formateadas usando formatos predefinidos asi como con
formatos definidos por el usuario.
Table 16.1 Predefined formats of date and time
Format
Explanation
Format (Now, "General date")
Formats the current date and time.
Format (Now, "Long Date")
Displays the current date in long format.
Format (Now, "Short date")
Displays current date in short format
Format (Now, "Long Time")
Display the current time in long format.
Format (Now, "Short Time")
Display the current time in short format.
Ejemplo 16.1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Label1.Text = Format(Now, "General Date")
Label2.Text = Format(Now, "Long Date")
Label3.Text = Format(Now, "short Date")
Label4.Text = Format(Now, "Long Time")
Label5.Text = Format(Now, "Short Time")
End Sub
www.s-ejecutive.com
62
16.2 Formatenado fehcas y horas con formatos definidos por el usuario
Format (expresion ,estilo)
Table 16.2 Some of the user-defined format functions for date and time
Format
Definición
Format (Now, "M")
Muestra el mes y el dia
Format (Now, "MM")
Muestra el mes actual con 2 digitos
Format (Now, "MMM")
Muestra el nombre abreviado del mes
Format (Now, "MMMM")
Muestra el nombre complete del mes
Format (Now, "dd/MM/yyyy")
Muestra la fecha actualen el formato dia/mes/año.
Muestra la fecha en el format Mes, Dia, Año
Format (Now, "MMM,d,yyyy")
Format (Now, "h:mm:ss tt")
Format (Now, "MM/dd/yyyy
Muestra la hora actual en hora::minutos:segundos asi
como am/pm según corresponda.
Muestra la fecha y hora actual en el
formato hora:minutos:segundos
h:mm:ss")
Ejemplo 16.2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click, Button2.Click, Button3.Click
Label1.Text = Format(Now, "M")
Label2.Text = Format(Now, "MM")
Label3.Text = Format(Now, "MMM")
Label4.Text = Format(Now, "MMMM")
Label5.Text = Format(Now, "dd/MM/yyyy")
Label6.Text = Format(Now, "MMM,d,yyyy")
Label7.Text = Format(Now, "h:mm:ss tt")
Label8.Text = Format(Now, "MM/dd/yyyy h:mm:ss tt")
End Sub
www.s-ejecutive.com
63
www.s-ejecutive.com
64
17- CHECK BOX
Los Check box son controles muy usados. Permiten que el usuario seleccione uno o mas elementos
dando click en las casillas. P.e., en el cuadro de dialogo de fuente de cualquier editor de texto de
Microsoft tal como FrontPage,hay muchas casillas(checkbox) debajo de efectos tales como los
mostrados en el siguiente cuadro. El usuario puede elegir subrayado, subindice, minusculas,
superíndice entre muchas mas. En Visual Basic, podriamos crear un carro de compras donde el
usuario pueda dar click en las casillas que correspondan a los elementos que quiera comprar,y el
total podria procesarse tal como en el ejemplo 17.1 se muestra.
Ejemplo 17.1:Shopping CartE
www.s-ejecutive.com
65
Codigo del carro de compras:
Private Sub BtnCalculate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnCalculate.Click
Const LX As Integer = 100
Const BN As Integer = 500
Const SD As Integer = 200
Const HD As Integer = 80
Const HM As Integer = 300
Const AM As Integer = 150
Dim sum As Integer
If CheckBox1.Checked = True Then
sum += LX
End If
If CheckBox2.Checked = True Then
sum += BN
End If
If CheckBox3.Checked = True Then
sum += SD
www.s-ejecutive.com
66
End If
If CheckBox4.Checked = True Then
sum += HD
End If
If CheckBox5.Checked = True Then
sum += HM
End If
If CheckBox6.Checked = True Then
sum += AM
End If
Label5.Text = sum.ToString("c")
Ejemplo 17.2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Const large As Integer = 10.0
Const medium As Integer = 8
Const small As Integer = 5
Dim sum As Integer
If CheckBox1.Checked = True Then
sum += large
End If
If CheckBox2.Checked = True Then
sum += medium
End If
If CheckBox3.Checked = True Then
sum += small
End If
Label5.Text = sum.ToString("c")
www.s-ejecutive.com
67
Ejemplo 17.3
En este ejemplo el usuario puede introducer texto en cuadros de texto y darle formato a la fuente
usando 3 casillas que representan bold, italic y underline.
Aqui el codigo:
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Bold)
Else
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style And Not FontStyle.Bold)
End If
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked Then
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Italic)
Else
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style And Not FontStyle.Italic)
End If
End Sub
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As
www.s-ejecutive.com
68
System.EventArgs) Handles CheckBox3.CheckedChanged
If CheckBox2.Checked Then
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Underline)
Else
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style And Not FontStyle.Underline)
End If
End Sub
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Italic)
Contiene el tipo de fuente original y lo cambia a italic.
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style And Not FontStyle.Italic)
Tambien contiene el tipo original de fuente pero lo cambia a regular)
www.s-ejecutive.com
69
18- RADIOBUTTON
los botones de radio son también muy utiles. A diferencia de los checkbox estos botones solo
permiten tener una opción activa, Aquí un ejemplo que permite al usuario seleccionar un color
solamente.
Ejemplo 18.1
Código:
Dim strColor As String
Private Sub RadioButton8_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioButton8.CheckedChanged
strColor = "Red"
End Sub
Private Sub RadioButton7_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioButton7.CheckedChanged
strColor = "Green"
End Sub
Private Sub RadioYellow_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioYellow.CheckedChanged
strColor = "Yellow"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Label2.Text = strColor
End Sub
www.s-ejecutive.com
70
Es importante tener en mente que sin importar cuantos radiobutton haya en el formulario solo uno
de ellos podrá estar activo, para poder tener varias opciones de diferentes tipos debemos
contenerlas dentro de los controles llamados GroupBox tal como se muestra en el siguiente
cuadro.
Ejemplo 18.2
Código:
Dim strColor As String
Dim strSize As String
Private Sub RadioButton8_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioButton8.CheckedChanged
strColor = "Red"
End Sub
Private Sub RadioButton7_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioButton7.CheckedChanged
strColor = "Green"
End Sub
Private Sub RadioYellow_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioYellow.CheckedChanged
strColor = "Yellow"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Label2.Text = strColor
Label4.Text = strSize
End Sub
www.s-ejecutive.com
71
Private Sub RadioXL_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioXL.CheckedChanged
strSize = "XL"
End Sub
Private Sub RadioL_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioL.CheckedChanged
strSize = "L"
End Sub
Private Sub RadioM_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioM.CheckedChanged
strSize = "M"
End Sub
Private Sub RadioS_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles RadioS.CheckedChanged
strSize = "S"
End Sub
www.s-ejecutive.com
72
19- CREACIÓN DE UN NAVEGADOR SENCILLO
Basicamente a todos nos gusta navegar en internet utilizando navegadores creados por diferentes
compañiastales como el Internet Explorer o Mozilla Firefox o Google Chrome entre otros. De
cualquier forma si nos damos a la tarea de crear nuestro propio navegador, lo podemos realziar
totalmente a nuestro gusto sin tener que usar un programa creado al gusto de alguien mas. En
este capitulo crearemos un navegador sencillo en muy poco tiempoAntes que nada, debemos crear un Nuevo proyecto y lo nombraremos como navegadorpropio,
cambiaremos el nombre del formulario a mi navegador y el texto a Mi Navegador, ahora
cambiaremos el tamaño a 1024 x 768. Enseguida necesitamos agregar una maquina que permita
conectar nuestro navegador a internet, a este control se le conoce como WebBrowser control
ubicado en el cuadro de herramientas de la izquierda. Pondremos como tamaño 1000 x 700, ahora
arrastraremos un textbox y lo colocaremos en la parte superior del navegador, este funcionará
como barra de direcciones de manera que ingresemos ahí la URL del sitio al que queremos
navegar. Finalmente ubicaremos un botón y una etiqueta como en el ejemplo tal como se muesra
en la sig.imagen.
El codigo para el navegador es considerablemente simple, consiste en una sola línea de código.
Damos doble click en el boton e ingresamos el siguiente código:
www.s-ejecutive.com
73
Public Class Form1
Private Sub Go_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handl
es Button1.Click
MyWebBrowser.Navigate(TextBox1.Text)
End Sub
End Class
Ahoa corremos el programa, escribimos cualquier dirección y presionamos el boton.
www.s-ejecutive.com
74
20-MANEJO DE ERRORES
20.1 INTRODUCCIÓN
El manejo de errors es un procedimiento esencial debido a que nos puede ayudar a hacer un
programa libre de errores. Un programa libre de errores puede correr eficientemente, y el usuario
no tiene porque afrontar errores como que se cierren los programas.
Los errores pueden ocurrir cuando el usuario ingrese información. P.e. suele suceder que por
equivocación los usuarios llegarán a introducir texto donde el campo solo debe admitir números
tales como el peso de una persona, la computadora no será capaz de procesar el calculo
matematico por lo que el programa sufrirá un error. Estos errores son conocidos como errores
sincronos ,
Por lo tanto un buen programador debe estar mas alerta de las partes de programación que
pudieran repercutir en un error y para eso es necesario que se escriba mas código capaz de
preveer este tipo de errores para ayudar al usuario. Contemplar el manejo de errores debe
considerarse una buena practica, aun cuando pueda llevarnos mas tiempo al programar.
VB ha incorporado manejo de errores. P.e. cuando un usuario intente divider un numero entre cero,
vb no mostrará ningún mensaje de error sin embargo muestra como resultado “infinito” aun
cuando esto es incorrecto puesto que debería mostrar indefinido.
20.2 Usando On Error GoTo Sinntaxis
Visual Basic 2010 soporta la estructura On Error GoTo program_label .
On Error GoTo program_label
Donde program_label es la sección de codigo que esta diseñada por el programador para el
manejo de errors cometidos por el usuario. Una vez que se detecte un error, el programa saltará a
la sección de program_label para manejar el error.
Ejemplo 20.1: Division entre cero
En este ejemplo, trataremos con el error al ingresar un valor no-numérico dentro de un campo de
www.s-ejecutive.com
75
texto que se supone solo contendrá valores numericos. El program_label aqui es error_hanldler.
Cuando el usuario introduzca un valor no numeric dentro del campo de texto,el mensaje de error
mostrará el texto "una de las entradas no es un numero! Intentelo nuevamente!". Is ningun error
ocurre, mostrará la respuesta correcta.
The Code
Public Class Form1
Private Sub CmdCalculate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles CmdCalculate.Click
Lbl_ErrorMsg.Visible = False
Dim firstNum, secondNum As Double
On Error GoTo error_handler
firstNum = Txt_FirstNumber.Text
secondNum = Txt_SecondNumber.Text
Lbl_Answer.Text = firstNum / secondNum
Exit Sub 'To prevent error handling even the inputs are valid
error_handler:
Lbl_Answer.Text = "Error"
Lbl_ErrorMsg.Visible = True
Lbl_ErrorMsg.Text = " Una de las entradas no es un numero! Intentelo nuevamente!".
www.s-ejecutive.com
76
End Sub
End Class
The Output
20.3 Manejo de Errores usando Try.....Catch....End Try
La estructura Try...Catch...End Try puede manejar varios tipos de errors..
sintaxis
Try
sentencias
Catch exception_variable as Exception
Sentencias a manejar con las excepciones
www.s-ejecutive.com
77
End Try
Ejemplo 20.2
Esta es una modificacion del ejemplo 20.1. en lugar de usar On Error GoTo, utilizamos el
metodo Try...Catch...End Try . En este ejemplo,el estado Catch captara la excepcióncuando el
usuario ingrese un valor no numeric y regresará un mensaje de error. Si no hay excepción , no
habrá ninguna acción para el estado Catch y el program regresará la respuesta correcta.
Codigo
Public Class Form1
Private Sub CmdCalculate_Click(ByVal sender As System.Object, ByVal eAs System.EventArgs)
Handles CmdCalculate.Click
Lbl_ErrorMsg.Visible = False
Dim firstNum, secondNum, answer As Double
Try
firstNum = Txt_FirstNumber.Text
secondNum = Txt_SecondNumber.Text
answer = firstNum / secondNum
Lbl_Answer.Text = answer
Catch ex As Exception
Lbl_Answer.Text = "Error"
Lbl_ErrorMsg.Visible = True
Lbl_ErrorMsg.Text = " una de las entradas no es un numero! Intentelo nuevamente!".
End Try
End Sub
www.s-ejecutive.com
78
End Class
Resultado
he
www.s-ejecutive.com
79
21- MANEJO DE GRÁFICOS 1 CONCEPTOS BÁSICOS
21.1 Introducción
Desde que Visual Basic evoluciono a visual net , los controles de ofrma ya no se incuyen. Ahora es
cuestión de los programadores escribir el código para crear varias formas y dibujos. Aun sin los
controles de dibujo, las opciones para el programador son bastantes de manera que pueda crear
sus formas totalmente personalizadas.
Vb2010 ofrece varias cpacidades graficas que permiten al programador escribir código que pueda
dibujar todo tipo de formas incuyendo fuentes. En esta lección aprenderemos a escribir código para
dibujar líneas y formas en la interfaz de visual basic.
21.2 Creación de objetos gráficos
Antes de poder dibujar cualquier figura, necesitamos crear objetos gráficos. Un objeto gráfico es
creado usando el método CreateGraphics(). Podemos crear objetos gráficos que puedan inserter
en el formulario controles o a si mismo. P.e. si deseamos dibujar en el formulario podemos usar el
sig. Código.
Dim myGraphics As Graphics =me.CreateGraphics
Siempre debemos usar me en lugar de form1 ya que vb2010 no permite otra forma de llamar al
formulario.
O si lo que deseamos es dibujar sobre un Picturebox podemos utilizar el sig. código:
Dim myGraphics As Graphics = PictureBox1.CreateGraphics
Tambien podemos usar un textbox como superficie para dibujar.
Dim myGraphics As Graphics = TextBox1.CreateGraphics
El objeto gráfico que se crea no dibuja nada en pantalla hasta que llamemos los metodos del
objeto. Adicionalmente necesitamos crear un objeto Pen como herramienta de dibujo.
21.3 Creación de un obveto Pen
Un objeto Pen(pluma) puede crearse usando este código.myPen = New Pen(Brushes.DarkMagenta, 10)
donde myPen es una variable Pen. Podemos usar cualquier nombre de variable como myPen. El
primer parámetro define el color de la línea y el segundo indica el grosor de la línea.
Podemos crea una pluma también con este código:
Dim myPen As Pen
www.s-ejecutive.com
80
myPen = New Pen(Drawing.Color.Blue, 5)
habiendo creado la pluma y el gráfico, estamos listos para dibujar graficos en pantalla.
21.3 Dibujo de una línea
Primero que nada, teniendo un nuevo proyecto nuevo vamos a arrastrar un botón y damos doble
click para acceder a su código. Posteriormente escribimos el siguiente código.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim myGraphics As Graphics = me.CreateGraphics
Dim myPen As Pen
myPen = New Pen(Brushes.DarkMagenta, 10)
myGraphics.DrawLine(myPen, 10, 10, 100, 10)
End Sub
La segunda linea crea un objeto gráfico. La tercera y cuarta línea crean la pluma.La quinta linea de
codigo crea una línea en el formulario usando el método DrawLine. El primer parámetro usa la
pluma. El segundo parámetro y el tercero definen las coordenadas del punto inicial de la línea. El
cuarto y quinto argumento definen las coordenadas del ultimo punto de la línea.
object.DrawLine(Pen, x1, y1, x2, y2)
Resultado:
www.s-ejecutive.com
81
22- MANEJO DE GRÁFICOS – DIBUJO DE RECTANGULOS
22.1. Creación de rectángulos
Para dibujar rectángulos en pantalla hay 2 formas de hacerlo:
1.- podemos usar el método DrawRectangle especificando la coordenada de la esquina superior
izquierda, su ancho y su altura. También necesitamos crear un objeto gráfico y una pluma.
Sintaxis
myGrapphics.DrawRectangle(myPen, X, Y, width, height)
Donde myPen corresponde al objeto pen que creamos, X y Y son las coordenadas de la esquina
superior izquierda, el cuarto parámetro corresponde al ancho y el ultimo parámetro se refiere al alto
del rectángulo.
The sample code is shown below:
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Blue, 5)
Dim myGraphics As Graphics = Me.CreateGraphics
myGraphics.DrawRectangle(myPen, 0, 0, 100, 50)
2.- el otro modo de crear rectángulos es crear objeto rectángulo y posteriormente usarlo dentro de
otro método. como en el siguiente código se muestra:
myGraphics.DrawRectangle(myPen,myRectangle) where myRectangle is the rectangle object
el codigo para crear un objeto rectangulo es como se muestra en este codigo:
Dim myRectangle As New Rectangle
myRect.X = 10
myRect.Y = 10
myRect.Width = 100
myRect.Height = 50
tambien podemos crear rectángulos usando código de una línea como se muestra enseguida:
Dim myRectangle As New Rectangle(X,Y,width, height)
www.s-ejecutive.com
82
Y el código para crear el rectángulo anterior es:
myGraphics.DrawRectangle(myPen, myRectangle)
22.2 Personalizacion del estilo de línea de un objeto pen
La forma que dibujamos es dibujada con una línea solida, podemos personalizar el estilo de línea
del objeto pen para que use una línea punteada, o líneas basadas en guiones entre otras. P.e. la
sintaxis para dibujar una línea punteada es la siguiente:
myPen.DashStyle=Drawing.Drawing2D.DashStyle.Dot
donde el ultimo parámetro especifica la línea DashStyle, una línea hecha a base de puntos. El
siguiente código dibuja un rectángulo con línea punteada roja.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Red, 5)
Dim myGraphics As Graphics = Me.CreateGraphics
myPen.DashStyle = Drawing.Drawing2D.DashStyle.Dot
myGraphics.DrawRectangle(myPen, 10, 10, 100, 50)
End Sub
www.s-ejecutive.com
83
Los posibles valores del tipo de línea de la pluma están listados en la siguiente tabla.-
Line Style
Line consists of dots
Line consists of dashes
Line consists of alternating dashes and
dots
Line consists of alternating dashes and
double dots
Solid line
Custom line style
DashStyle Value
Dot
Dash
DashDot
DashDotDot
Solid
Custom
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArg
s) Handles Button1.Click
Dim myRect As New Rectangle
myRect.X = 10
myRect.Y = 10
myRect.Width = 100
myRect.Height = 50
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Blue, 5)
Dim myGraphics As Graphics = Me.CreateGraphics
myGraphics.DrawRectangle(myPen, myRect)
End Sub
www.s-ejecutive.com
84
23- MANEJO DE GRÁFICOS – DIBUJANDO ELIPSES Y CIRCULOS
23.1 Dibujo de una elipse
Antes que nada debemos en tender que una elipse esta basada en una base rectangular tal como
la mayoría de las formas. Las elipses son formas ovalados que parten de un rectángulo como se
muestra enseguida.
Por lo tanto, necesitamos crear un rectángulo antes de crear una elipse. Este rectángulo sirve
como cuadro delimitador de la elipse. Por otro lado, podemos crear las elipses haciendo uso del
método DrawEllipse sin antes crear el rectángulo.a continuación mostramos los 2 metodos.
En el primer método, digamos que hemos creado un objeto rectángulo llamado myRectangle y una
pluma como myPen, enseguida dibujamos la elipse usando el sig.codigo.
myGraphics.DrawEllipse(myPen, myRectangle)
Aquí se muestra el código completo
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Blue, 5)
Dim myGraphics As Graphics = Me.CreateGraphics
Dim myRectangle As New Rectangle
myRectangle.X = 10
myRectangle.Y = 10
myRectangle.Width = 200
myRectangle.Height = 100
myGraphics.DrawEllipse(myPen, myRectangle)
www.s-ejecutive.com
85
El segundo método es usando el método DrawEllipse sin crear un rectángulo, desde luego aun es
necesario crear un objeto grafico y una pluma.
myGraphics.DrawEllipse(myPen, X,Y,Width, Height)
donde X yY son las coordinadas de la esquina superior izquierda el rectangulo delimitador, width
es el ancho yy height se refiere a la altura de la elipse.
Código completo:
Ejemplo 23.1(b)
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Blue, 5)
Dim myGraphics As Graphics = Me.CreateGraphics
myGraphics.DrawEllipse(myPen, 10, 10, 200, 100)
23.2 Dibujar un circulo
La manera en la que se crean los círculos es idéntica a la de las elipses salvo por el hecho de que
en un circulo el ancho y el alto tienen el mismo valor.
El siguiente ejemplo dibuja un circulo.Ejemplo 23.2(b)
www.s-ejecutive.com
86
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Blue, 5)
Dim myGraphics As Graphics = Me.CreateGraphics
Dim myRectangle As New Rectangle
myRectangle.X = 10
myRectangle.Y = 10
myRectangle.Width = 100
myRectangle.Height = 100
myGraphics.DrawEllipse(myPen, myRectangle)
Example 23.2(b)
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Blue, 5)
Dim myGraphics As Graphics = Me.CreateGraphics
myGraphics.DrawEllipse(myPen, 10, 10, 100, 100)
www.s-ejecutive.com
87
24: MANEJO DE GRAFICOS – DIBUJO DE TEXTOS
24.1 Dibujando Textos
Con el commando DrawString podemos dibujar textos, el format es el siguiente:
myGraphics.DrawString(myText, myFont, mybrush, X , Y)
Donde myGraphics es el ob jeto gráfico, myText es el texto que deseamos mostrar en pantalla,
myFont es el objeto fuente que creamos, myBrush es el estilo de pincel que hemos creado y X, Y
son las coordenadas de la esquina superior izquierda del texto.
Podemos crear objetos Font usando el siguiente codigo:
myFont = New System.Drawing.Font("Verdana", 20)
Donde el primer argumento de la fuente es la fuente, y el segundo argumento es el tamaño de la
fuente. Podemos agregar un tercer argumento el estilo de fuente,tales como bold, italic, underline.
Ejemplos:
myFont = New System.Drawing.Font("Verdana", 20, FontStyle.Bold)
myFont = New System.Drawing.Font("Verdana", 20, FontStyle.Underline)
myFont = New System.Drawing.Font("Verdana", 20, FontStyle.Italic)
myFont = New System.Drawing.Font("Verdana", 20, FontStyle.Regular)
Para crear un estilo de pincel podemo usar el siguiente codigo:
Dim myBrush As Brush
myBrush = New Drawing.SolidBrush(Color.BrushColor)
Algunos de los colores de pincel son
AliceBlue, AquaMarine Beige, DarkMagenta,
DrarkOliveGreen, SkyBlue y mas. No necesitamos recordar los nombres de todos los colores, el
sistema intuitivo de VB nos muestra un listado con los colores en donde podemos buscar el color
deseado.
www.s-ejecutive.com
88
Ahora debemos proceder a dibujar la fuente usando el código siguiente:
Ejemplo24.1
Dim myGraphics As Graphics = Me.CreateGraphics
Dim myFont As Font
Dim myBrush As Brush
myBrush = New Drawing.SolidBrush(Color.DarkOrchid)
myFont = New System.Drawing.Font("Verdana", 20, FontStyle.Underline)
myGraphics.DrawString("Visual Basic 2010", myFont, myBrush, 10, 10)
Resultado:
El ejemplo anterior puede modificarse si queremos crear los objetos fuente y pincel, podemos usar
la fuente de un objeto existente tal como el formulario y el sistema de colores. Reemplazamos la
última línea del ejemplo anterior con esta línea (necesitamos borrar las líneas que crean los objetos
de fuente y pincel).
myGraphics.DrawString("Visual Basic 2010", me.Font,
System.Drawing.Brushes.DarkOrchid, 10, 10)
Tambien podemos agregar un InputBox que nos permita dejar al usuario ingresar mensajes para
www.s-ejecutive.com
89
mostralos en pantalla.
Ejemplo 24.2
Dim myGraphics As Graphics = Me.CreateGraphics
Dim myFont As Font
Dim myBrush As Brush
Dim userMsg As String
userMsg = InputBox("What is your message?", "Message Entry Form", "Enter your message
here", 100, 200)
myBrush = New Drawing.SolidBrush(Color.DarkOrchid)
myFont = New System.Drawing.Font("Verdana", 20, FontStyle.Underline)
myGraphics.DrawString(userMsg, myFont, myBrush, 10, 10)
www.s-ejecutive.com
90
25:MANEJO DE GRAFICOS – DIBUJO DE POLIGONOS Y PIE
25.1 Dibujo de polígonos
Los polígonos cuentan con más de 3 lados por lo que al crearlos deberemos indicar las
coordenadas de cada uno de los lados(también conocidos como vértices)
sintaxis
Dim A1 As New Point(X1,Y1)
Dim A2 As New Point(X2,Y2)
Dim A3 As New Point(X3,Y3)
Dim A4 As New Point(X4,Y4)
Dim An as New Point(Xn,Yn)
Después de declarar los puntos, necesitamos definir un punto que agrupe todos los puntos juntos
usando la siguiente sintaxis:
Dim myPoints As Point() = {A1, A2, A3,....,An}
Finalmente, creamos el objeto gráfico y usamos el metodo DrawPolygon para dibujar el poligono
usando la siguiente sintaxis:
Dim myGraphics As Graphics = Me.CreateGraphics
myGraphics.DrawPolygon(myPen, myPoints)
Donde myPen es la pluma utilizando la siguiente sintaxis:
myPen = New Pen(Drawing.Color.Blue, 5)
Ejemplo 25.1 Dibujo de un triangulo
Un triangulo es un pligono de 3 vertices. Aquí un código ejemplo
www.s-ejecutive.com
91
Dim myPen As Pen
Dim A As New Point(10, 10)
Dim B As New Point(100, 50)
Dim C As New Point(60, 150)
Dim myPoints As Point() = {A, B, C}
myPen = New Pen(Drawing.Color.Blue, 5)
Dim myGraphics As Graphics = Me.CreateGraphics
myGraphics.DrawPolygon(myPen, myPoints)
25.2: Dibujando un Pie
Contamos con el metodo DrawPie del objeto gráfico.como es usual necesitamos crear los objetos
pen y grafico. La sintaxis para crear un pie es:
myGraphics.DrawPie(myPen, X, Y, width,height, StartAngle, SweepAngle)
Donde X y Y son las coordenadas del rectángulo delimitador, los otros argumentos son auto
explicables. StartAngle y SweepAngle son medidas en grados. SweepAngle puede tener valores
negativos. Si el valor es positive, barre en sentido del reloj mientras que si es negative lo hará en
www.s-ejecutive.com
92
sentido contrario.
Ejemplo 25.3: Dibujar un pie que empieza con 0 grados y alcanza los 60 grados..
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Blue, 5)
Dim myGraphics As Graphics = Me.CreateGraphics
myGraphics.DrawPie(myPen, 50,50, 150,150,0,60)
Salida:
www.s-ejecutive.com
93
26:MANEJO DE GRÁFICOS – FORMAS RELLENAS CON COLOR
Hay 4 metodos usados para rellenar objetos que son FillRectangle, FillEllipse , FillPolygon y
FillPie.
Sintaxis:
myBrush = New SolidBrush(Color.myColor)
Donde myColor puede ser un color como red, blue y mas.
26.1 Dibujo y relleno de un rectángulo
La sintaxis para rellenar un rectángulo con un color es la siguiente:
myGraphics.FillRectangle (myBrush, 0, 0, 150, 150)
Código completo:
Dim myPen As Pen
Dim myBrush As Brush
Dim myGraphics As Graphics = Me.CreateGraphics
myPen = New Pen(Drawing.Color.Blue, 5)
myBrush = New SolidBrush(Color.Coral)
myGraphics.DrawRectangle(myPen, 0, 0, 150, 150)
myGraphics.FillRectangle(myBrush, 0, 0, 150, 150)
www.s-ejecutive.com
94
26.2 Dibujo y relleno de una elipse
Sintaxis
myGraphics.FillEllipse (myBrush, 0, 0, 150, 150)
Código completo
Ejemplo 26.2
Dim myPen As Pen
Dim myBrush As Brush
Dim myGraphics As Graphics = Me.CreateGraphics
myPen = New Pen(Drawing.Color.Blue, 5)
myBrush = New SolidBrush(Color.Coral)
myGraphics.DrawEllipse(myPen, 0, 0, 150, 150)
myGraphics.Ellipse(myBrush, 0, 0, 150, 150)
www.s-ejecutive.com
95
26.3 Dibujo y relleno de polignos
Sintaxis
myGraphics.FillPolygon(myBrush, myPoints)
Código complete:
Dim myPen As Pen
Dim myBrush As Brush
Dim A As New Point(10, 10)
Dim B As New Point(100, 50)
Dim C As New Point(120, 150)
Dim D As New Point(60, 200)
Dim myPoints As Point() = {A, B, C, D}
myPen = New Pen(Drawing.Color.Blue, 5)
myBrush = New SolidBrush(Color.Coral)
Dim myGraphics As Graphics = Me.CreateGraphics
myGraphics.DrawPolygon(myPen, myPoints)
myGraphics.FillPolygon(myBrush, myPoints)
www.s-ejecutive.com
96
26.4 Dibujo y relleno de un Pie
Sintaxis
myGraphics.FillPie(myBrush, X, Y, width, height, StartAngle, SweepAngle)
Código completo
Dim myPen As Pen
Dim myBrush As Brush
myPen = New Pen(Drawing.Color.Blue, 5)
myBrush = New SolidBrush(Color.Coral)
Dim myGraphics As Graphics = Me.CreateGraphics
myGraphics.DrawPie(myPen, 30, 40, 150, 150, 0, 60)
.myGraphics.FillPie(myBrush, 30, 40, 150, 150, 0, 60)
Salida:
www.s-ejecutive.com
97
27:USANDO TIMER
Timer es un control utilizado para manejar y controlar eventos que estén relacionados con el
tiempo. P.e. necesitamos un Timer para crear un reloj, animaciones y mas.
27.1 Creación de Reloj
Para crear un reloj debemos usar el control Timer. Este es un control que solo lo usa el
programador, es invisible durante el tiempo de ejecución y eso hace que el usuario no interactue
con el.
1.-renombremos al proyecto como miReloj al igual que el texto. Ahora agreguemos el control
Timer al formulario2.-insertamos una etiqueta. Cambiamos la propiedad textAlign a centro enmedio
3.- Cambiaremos la propiedad Interval a 1000(equivalentes a un segundo = 1000 milisegundos)
Ahora estamos listos para el código. Ahora podemos ver la línea siguiente de código misma que
será utilizada en nuestro programa.
Label1.Text = TimeOfDay
Ahora pondremos el siguiente código en el código del control Timer.Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) H
andles Timer1.Tick
Label1.Text = TimeOfDay
End Sub
www.s-ejecutive.com
98
27.2 creación de un reloj temporizador
Podemos crear un temporizador con el control Timer utilizando 3 botones a los que llamaremos
StartBtn, StopBtn y ResetBtn pondremos los textos "Start", "Stop" y "Reset respectivamente
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Ha
ndles Timer1.Tick
'To increase one unit per second
Label1.Text = Val(Label1.Text) + 1
End Sub
Private Sub StopBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles StopBtn.Click
'To stop the Timer
Timer1.Enabled = False
End Sub
Private Sub StartBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles StartBtn.Click
'To start the Timer
Timer1.Enabled = True
End Sub
Private Sub ResetBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles ResetBtn.Click
'To reset the Timer to 0
Label1.Text = 0
End Sub
www.s-ejecutive.com
99
27.3 Creación de un dado digital
Es muy facil crear un dado digital con poco código y el control Timer. Necesitamos generar
números aleatorios usando la función Rnd. Rnd genera números entre 0 y 1.
n = Int(1 + Rnd() * 6)
genera enteros de 1 a 6
En el código, introducimos la variable m para controlar la longitud de tiempo para el proceso. Si m
es mas de 1000, entonces el proceso se detendrá para establecer la propiedad enabled a false del
Timer.
Codigo
Public Class Form1
Dim n, m As Integer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Ha
ndles Timer1.Tick
m = m + 10
If m < 1000 Then
n = Int(1 + Rnd() * 6)
LblDice.Text = n
www.s-ejecutive.com
100
Else
Timer1.Enabled = False
m=0
End If
End Sub
Private Sub RollDiceBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArg
s) Handles RollDiceBtn.Click
Timer1.Enabled = True
End Sub
End Class
www.s-ejecutive.com
101
28:CREACIÓN DE ANIMACIÓN
Aunque vb2010 es generalmente un lenguaje diseñado para realizar aplicaciones de negocios e
industrials y no creado para hacer animaciones, puede ser usado para crear alguns animaciones
muy sencillas.
28.1 Moviendo un objeto
En este caso insertaremos un control PictureBox y en su propiedad imagen importaremos una
imagen cualquiera desde el disco local. Enseguida, insertamos 4 botones, cambiamos el texto de
estos a Move Up, Move Down, Move Left y Move Right y sus nombres los cambiamos a
MoveUpBtn, MoveDowbBtn, MoveLeftBtn y MoveRightBtn respectivamente.
Ahora entramos al codigo de los botones tal como el siguiente codigo se muestra:
Private Sub MoveDownBtn_Click(ByVal sender As System.Object, ByVal e As System.Event
Args) Handles MoveDownBtn.Click
PictureBox1.Top = PictureBox1.Top + 10
End Sub
Private Sub MoveLeftBtn_Click(ByVal sender As System.Object, ByVal e As System.EventAr
gs) Handles MoveLeftBtn.Click
PictureBox1.Left = PictureBox1.Left - 10
End Sub
Private Sub MoveRightBtn_Click(ByVal sender As System.Object, ByVal e As System.Event
Args) Handles MoveRightBtn.Click
PictureBox1.Left = PictureBox1.Left + 10
End Sub
Explicación:
Cada vez que el usuario da click en el boton Move Down, la distancia del PictureBox se
incrementa en 10 pixeles desde el margen superior, creando un efecto de desplazamiento. Por el
www.s-ejecutive.com
102
otro lado, cada vez que el usuario da click en el Move Up, la distancia del PictureBox disminuye
en10 pixeles desde el borde superior. Por tantoal dar click en el Move Left, la distancia del
PictureBox disminuye en 10 pixeles desde el borde izquierdo. Finalmente el Move Right,manipula
la distancia del PictureBox en 10 pixeles para que este se displace desde el borde izquierdo hacia
la derecha.
Interfaz del Programa :
28.2 Creando animación usando el Timer
También podemos crear animación usando el Timer sin necesidad de manipular manualmente
dando click en los botones la distancia del objeto
1.-posicionamos un PictureBox en el formulario. Importamos una imagen dentro del control
2.-insetamos un Timer y establecemos el intervalo en 100 equivalente a 0.1 segundos
3.-finalmente agregamos 2 botones a los que llamamos AnimateBtn y StopBtn, y cambiamos el
texto de estos a Animate yStop respectivamente.
www.s-ejecutive.com
103
Hacemos uso de la propiedad Left del objeto PictureBox. PictureBox.Left se refiere a la distancia
del PictureBox dsde el borde izquierdo del formulario.Ahora damos click en el Timer y escribimos
el siguiente codigo:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Ha
ndles Timer1.Tick
If PictureBox1.Left < Me.Width Then
PictureBox1.Left = PictureBox1.Left + 10
Else
PictureBox1.Left = 0
End If
End Sub
En el código anterior Me.Width representa el ancho del formulario. Si la distancia PictureBox
desde el borde izquierdo es menor que el ancho del, se incrementa en 10 la distancia del
PictureBox desde el borde izquierdo cada que el Timer avance, o cada 0.1 segundo en este
ejemplo.cuando la distancia del PictureBox desde el borde izquierdo es igual al ancho del
formulario, la distancia desde el borde izquierdo se establece en,0 lo cual mueve el PictureBox y
se mueve nuevamente, de modo que aparente un movimiento de izquierda a derecha.
Necesitamos insertar un botón que detenga la animación el código es :
Timer1.Enabled = False
Para animar el PictureBox,insertamos el boton e insertamos el sig.:
Timer1.Enabled = True
www.s-ejecutive.com
104
www.s-ejecutive.com
105

Documentos relacionados