+ All Categories
Home > Education > Entrega 8 arreglos - controles - gráficos

Entrega 8 arreglos - controles - gráficos

Date post: 08-Jul-2015
Category:
Upload: guest266cf96
View: 427 times
Download: 0 times
Share this document with a friend
Popular Tags:
48
Capitulo XII
Transcript
Page 1: Entrega 8   arreglos - controles - gráficos

Capitulo XII

id13017515 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 2: Entrega 8   arreglos - controles - gráficos

INDICE

CAPITULO XII

Arreglos 01

Ejercicio 84 01

Ejercicio 85 02

Ejercicio 86 06

GDI 11

Los Gráficos GDI 11

Ejercicio 87 12

Control PictureBox 15

Ejercicio 88 17

Control ListBox y ComboBox 19

Ejemplo 19

Ejercicio 89 23

Ejercicio 90 25

Despedida 46

Page 3: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

1

ARREGLOS

Como hemos visto en el capitulo VI de la entrega 4, hay dos tipos de

arreglos, que son los unidimensionales y los multidimensional, como lo sabemos,

estos arreglos nos permiten almacenar una cierta información, es como si fuera

nuestra base de datos, ahora es aquí donde los que no me entendieron en la

entrega 4 cuando hable de arreglos, lo puedan entender aquí con un ejemplo,

primero veremos un ejercicio de un arreglo unidimensional, y de ahí uno

bidimensional y al ultimo de esta entrega veremos un ejercicio sobre una pro forma

de insumos de computo, hecho con arreglos, funciones y procedimientos.

84. Esta aplicación nos permite ingresar un número del 1 al 7 y visualizar el nombre

del día de la semana.

Para esta aplicación los nombres de los controles son los siguientes:

El TextBox1 se llamara txtNumero

El Label2 se llamara lblNombDia

El Button1 se llamara btnOk

El Button2 se llamara btnSalir

Si se preguntan por que no puse los nombres de cada control con una figura de

llamada, lo que pasa, es que uno se tiene que acostumbra a ponerle nombre a los

controles con su prefijo y que el nombre que le pongan tiene que ir con referencia a

lo que va a capturar, hacer, mostrar etc.

Declaramos variables a Nivel del Formulario

Dim Dias(6) As String

id13098671 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 4: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

2

frmAplicacion84 (Evento Load)

Dias(0) = "Lunes"

Dias(1) = "Martes"

Dias(2) = "Miercoles"

Dias(3) = "Jueves"

Dias(4) = "Viernes"

Dias(5) = "Sábado"

Dias(6) = "Domingo"

btnOk (Evento Click)

Dim N As Integer

N = Val(Me.txtNumero.Text)

If N >= 1 And N <= 7 Then

Me.lblNombDia.Text = "El número ingresado representa el día " +

CStr(Dias(N - 1))

Else

MsgBox("Solo números del 1 al 7", MsgBoxStyle.Information, "Por Favor")

Me.txtNumero.Text = ""

Me.txtNumero.Focus()

End If

btnSalir (Evento Click)

Me.Close()

85. Esta aplicación llena los valores al azar entre 1 y 80 en un array de 4 x 4, luego

se pueden ordenar en forma ascendente y restaurar los valores iniciales.

Page 5: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

3

Para este caso los controles se llamaran:

Los Buttons se llamaran de acuerdo al texto que llevan, anteponiéndose su

prefijo, ejemplo: el botón Salir se llamara btnSalir.

En el caso de las cajas de texto, aunque le pueden colocar unos Labels, el

nombre de cada control será así, teniendo en cuenta que la tabla representa

a una matriz y al dibujo de los controles.

txtArray00 txtArray01 txtArray02 txtArray03

txtArray10 txtArray11 txtArray12 txtArray13

txtArray20 txtArray21 txtArray22 txtArray23

txtArray30 txtArray31 txtArray32 txtArray33

Una vez diseñada la interfaz y asignada con sus nombres respectivamente,

procederemos a codificar.

Declaramos variables a Nivel del Formulario

Dim Arreglo(3, 3), Restaurar(3, 3) As Integer

Dim Llenar As Boolean

Crearemos un procedimiento llamado LlenarArray, que nos permitirá

almacenar el array con valores del 1 al 80.

Sub LlenarArray()

Dim J, K As Integer

For J = 0 To 3

For K = 0 To 3

Arreglo(J, K) = CInt((80 - 1 + 1) * Rnd() + 1)

Next

Next

End Sub

Crearemos un procedimiento llamado LlenarControles, que nos permitirá

almacenar los valores del array en las cajas de texto.

Sub LlenarControles()

Me.txtArray00.Text = Arreglo(0, 0)

Me.txtArray01.Text = Arreglo(0, 1)

Me.txtArray02.Text = Arreglo(0, 2)

Me.txtArray03.Text = Arreglo(0, 3)

Me.txtArray10.Text = Arreglo(1, 0)

Me.txtArray11.Text = Arreglo(1, 1)

Me.txtArray12.Text = Arreglo(1, 2)

Me.txtArray13.Text = Arreglo(1, 3)

Me.txtArray20.Text = Arreglo(2, 0)

Page 6: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

4

Me.txtArray21.Text = Arreglo(2, 1)

Me.txtArray22.Text = Arreglo(2, 2)

Me.txtArray23.Text = Arreglo(2, 3)

Me.txtArray30.Text = Arreglo(3, 0)

Me.txtArray31.Text = Arreglo(3, 1)

Me.txtArray32.Text = Arreglo(3, 2)

Me.txtArray33.Text = Arreglo(3, 3)

End Sub

btnNuevo (Evento Click)

Me.txtArray00.Text = ""

Me.txtArray01.Text = ""

Me.txtArray02.Text = ""

Me.txtArray03.Text = ""

Me.txtArray10.Text = ""

Me.txtArray11.Text = ""

Me.txtArray12.Text = ""

Me.txtArray13.Text = ""

Me.txtArray20.Text = ""

Me.txtArray21.Text = ""

Me.txtArray22.Text = ""

Me.txtArray23.Text = ""

Me.txtArray30.Text = ""

Me.txtArray31.Text = ""

Me.txtArray32.Text = ""

Me.txtArray33.Text = ""

Me.txtArray00.Focus()

Llenar = False

btnLlenar (Evento Click)

Call LlenarArray()

Call LlenarControles()

Me.btnOrdenar.Enabled = True

Me.btnRestaurar.Enabled = False

Llenar = True

btnOrdenar (Evento Click)

Dim J, K, X, May As Integer

Dim Temp(15) As Integer

X = 0

REM Guardando los valores del array Arreglo en un array Restaurar

REM Almacendo los valores del array Arreglo en un array Temp

For J = 0 To 3

For K = 0 To 3

Restaurar(J, K) = Arreglo(J, K)

Temp(X) = Arreglo(J, K)

X = X + 1

Next

Next

REM Ordenando los valores del array Temp mediante el método

Page 7: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

5

REM de la burbuja

For J = 0 To 15

For K = 0 To 15

If K < 15 Then

If Temp(K) > Temp(K + 1) Then

May = Temp(K)

Temp(K) = Temp(K + 1)

Temp(K + 1) = May

End If

End If

Next

Next

X = 0

REM Asignando los valores del array Temp ordenados en el array Arreglo

For J = 0 To 3

For K = 0 To 3

Arreglo(J, K) = Temp(X)

X = X + 1

Next

Next

Call LlenarControles()

Me.btnRestaurar.Enabled = True

btnRestaurar (Evento Click)

Dim J, K As Integer

For J = 0 To 3

For K = 0 To 3

Arreglo(J, K) = Restaurar(J, K)

Next

Next

Call LlenarControles()

btnSalir (Evento Click)

Me.Close()

Bueno con estos dos ejercicios, creo que ya se les esta quedando en claro lo

de los arrays no?, wueno si no es así, haremos un ultimo ejercicio de un arreglo

bidimensional, aunque otros seguro estarán diciendo, por que no toca el tema de

matriz de matrices?, wueno no lo hago para que no se confundan, además la

programación a la que yo estoy haciendo es a la programación comercial, creo que

es en donde hay mas trabajo que hacer no?, y además para que complicarnos la

vida, si tenemos diseñadores de base de datos, como lo es el MSACCESS o el

SQLSERVER, con eso diseñadores, no necesitaremos mucho de arreglos, pero

siempre es bueno aprender aunque sea los mas principales.

Page 8: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

6

86. Esta aplicación nos permite manejar elementos de un Array de 4 x 4. Estos

elementos son valores numéricos de tipo entero con los cuales se realizaran

procesos como Suma de Filas, de Columnas y Diagonales.

Para los nombres de los controles, ósea cajas de texto y etiquetas, será según

el cuadro.

txtArreglo00 txtArreglo01 txtArreglo02 txtArreglo03 lblF1

txtArreglo10 txtArreglo11 txtArreglo12 txtArreglo13 lblF2

txtArreglo20 txtArreglo21 txtArreglo22 txtArreglo23 lblF3

txtArreglo30 txtArreglo31 txtArreglo32 txtArreglo33 lblF4

lblD2 lblC1 lblC2 lblC3 lblC4 lblD1

Page 9: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

7

Para el nombre de los botones será el siguiente:

Text Name

Limpiar el Array btnLimpArray

Limpiar los Resultados btnLimpResult

Suma las Columnas btnSumaCol

Suma las Filas btnSumaFila

Llenar el Array btnLlenarArray

Columna 1 btnCol1

Columna 2 btnCol2

Columna 3 btnCol3

Columna 4 btnCol4

Fila 1 btnFila1

Fila 2 btnFila2

Fila 3 btnFila3

Fila 4 btnFila4

Diagonal Nº 1 [ \ ] btnDiagonal1

Diagonal Nº 2 [ / ] btnDiagonal2

Una vez diseñada la interfaz y asignada con sus nombres respectivamente,

procederemos a codificar.

Declaramos variables a Nivel del Formulario

Dim Arreglo(3, 3) As Integer

Dim J, K, Suma As Integer

Crearemos un procedimiento llamado LlenarArray, que nos permitirá

almacenar el array con valores del 1 al 100.

Sub LlenarArreglo()

For J = 0 To 3

For K = 0 To 3

Arreglo(J, K) = CInt((100 - 1 + 1) * Rnd() + 1)

Next

Next

End Sub

Page 10: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

8

Crearemos un procedimiento llamado LlenarControles, que nos permitirá

almacenar los valores del array en las cajas de texto.

Sub LlenarControles()

Me.txtArreglo00.Text = Arreglo(0, 0)

Me.txtArreglo01.Text = Arreglo(0, 1)

Me.txtArreglo02.Text = Arreglo(0, 2)

Me.txtArreglo03.Text = Arreglo(0, 3)

Me.txtArreglo10.Text = Arreglo(1, 0)

Me.txtArreglo11.Text = Arreglo(1, 1)

Me.txtArreglo12.Text = Arreglo(1, 2)

Me.txtArreglo13.Text = Arreglo(1, 3)

Me.txtArreglo20.Text = Arreglo(2, 0)

Me.txtArreglo21.Text = Arreglo(2, 1)

Me.txtArreglo22.Text = Arreglo(2, 2)

Me.txtArreglo23.Text = Arreglo(2, 3)

Me.txtArreglo30.Text = Arreglo(3, 0)

Me.txtArreglo31.Text = Arreglo(3, 1)

Me.txtArreglo32.Text = Arreglo(3, 2)

Me.txtArreglo33.Text = Arreglo(3, 3)

End Sub

btnLimpArray (Evento Click)

Me.txtArreglo00.Text = ""

Me.txtArreglo01.Text = ""

Me.txtArreglo02.Text = ""

Me.txtArreglo03.Text = ""

Me.txtArreglo10.Text = ""

Me.txtArreglo11.Text = ""

Me.txtArreglo12.Text = ""

Me.txtArreglo13.Text = ""

Me.txtArreglo20.Text = ""

Me.txtArreglo21.Text = ""

Me.txtArreglo22.Text = ""

Me.txtArreglo23.Text = ""

Me.txtArreglo30.Text = ""

Me.txtArreglo31.Text = ""

Me.txtArreglo32.Text = ""

Me.txtArreglo33.Text = ""

btnLlenarArray (Evento Click)

Call LlenarArreglo()

Call LlenarControles()

Page 11: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

9

btnSumaCol (Evento Click)

Dim ResSuma(3) As Integer

For K = 0 To 3

Suma = 0

For J = 0 To 3

Suma = Arreglo(J, K) + Suma

Next

ResSuma(K) = Suma

Next

Me.lblC1.Text = CStr(ResSuma(0))

Me.lblC2.Text = CStr(ResSuma(1))

Me.lblC3.Text = CStr(ResSuma(2))

Me.lblC4.Text = CStr(ResSuma(3))

btnLimpResultr (Evento Click)

Me.lblC1.Text = ""

Me.lblC2.Text = ""

Me.lblC3.Text = ""

Me.lblC4.Text = ""

Me.lblD1.Text = ""

Me.lblD2.Text = ""

Me.lblF1.Text = ""

Me.lblF2.Text = ""

Me.lblF3.Text = ""

Me.lblF4.Text = ""

btnSumaFila (Evento Click)

Dim ResSuma(3) As Integer

For K = 0 To 3

Suma = 0

For J = 0 To 3

Suma = Arreglo(K, J) + Suma

Next

ResSuma(K) = Suma

Next

Me.lblF1.Text = CStr(ResSuma(0))

Me.lblF2.Text = CStr(ResSuma(1))

Me.lblF3.Text = CStr(ResSuma(2))

Me.lblF4.Text = CStr(ResSuma(3))

btnCol1 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(K, 0) + Suma

Next

Me.lblC1.Text = CStr(Suma)

Page 12: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

10

btnCol2 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(K, 1) + Suma

Next

Me.lblC2.Text = CStr(Suma)

btnCol3 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(K, 2) + Suma

Next

Me.lblC3.Text = CStr(Suma)

btnCol4 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(K, 3) + Suma

Next

Me.lblC4.Text = CStr(Suma)

btnFila1 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(0, K) + Suma

Next

Me.lblF1.Text = CStr(Suma)

btnLFila2 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(1, K) + Suma

Next

Me.lblF2.Text = CStr(Suma)

btnFila3 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(2, K) + Suma

Next

Me.lblF3.Text = CStr(Suma)

Page 13: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

11

btnFila4 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(3, K) + Suma

Next

Me.lblF4.Text = CStr(Suma)

btnDiagonal1 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(K, K) + Suma

Next

Me.lblD1.Text = CStr(Suma)

btnDiagonal2 (Evento Click)

Suma = 0

For K = 0 To 3

Suma = Arreglo(K, 3 - K) + Suma

Next

Me.lblD2.Text = CStr(Suma)

GDI

Los Gráficos GDI

El CLR (Common Language Runtime) usa una implementación avanzada de

la interfaz de diseño de gráfico de Windows, denominada GDI+, que permite crear

gráficos, dibujar texto y manipular imágenes gráficas como si fueran objetos. En

otras palabras, el GDI nos permite crear Textos y gráficos (Líneas, cuadros,

animaciones, etc.) en los formularios que estamos usando.

Para crear una imagen, lo podemos hacer mediante una variable o

directamente, si lo elaboramos mediante una variable, esta tendrá que ser de tipo

Graphics. Para que me entiendan un poco mejor, haremos un ejercicio de GDI, algo

sencillo, ya que el objetivo de este curso ya les mencione que es el de realizar

aplicaciones empresariales.

Page 14: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

12

87. Esta aplicación nos permite visualizar texto, figuras y una pequeña animación

creados mediante GDI.

Para el nombre del control Timer1 será tmrAnimacion y de los botones será

el siguiente:

Text Name

Ver Texto btnTexto

Ver Cuadrado btnCuadrado

Ver Circulo btnCirculo

Ver Poligono btnPoligono

Ver Animacion btnAnimacion

Salir btnSalir

Page 15: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

13

Una vez diseñada la interfaz y asignada con sus nombres respectivamente,

procederemos a codificar.

Declaramos variables a Nivel del Formulario

Dim Imagen As Graphics

Dim Colores As Integer = 0

btnTexto (Evento Click)

Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.Blue, Drawing.Color.Green,

Drawing2D.LinearGradientMode.Horizontal)

Dim Fuente As New Font("Verdana", 30)

Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 30, 30)

btnCuadrado (Evento Click)

Dim color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.Yellow, Drawing.Color.White,

Drawing2D.LinearGradientMode.Vertical)

Imagen.FillRectangle(color, New Rectangle(30, 90, 100, 100))

btnCirculo (Evento Click)

Dim color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.Green, Drawing.Color.White,

Drawing2D.LinearGradientMode.ForwardDiagonal)

Imagen.FillEllipse(color, New Rectangle(150, 90, 100, 100))

btnPoligono (Evento Click)

Dim color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.Red, Drawing.Color.White,

Drawing2D.LinearGradientMode.BackwardDiagonal)

Imagen.FillPolygon(color, New PointF() {New PointF(300, 90), New

PointF(360, 90), New PointF(390, 140), New PointF(360, 190), New

PointF(300, 190), New PointF(270, 140)})

btnAnimacion (Evento Click)

Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.Blue, Drawing.Color.Green,

Drawing2D.LinearGradientMode.Horizontal)

Dim Fuente As New Font("Verdana", 30)

Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 20, 230)

Me.tmrAnimacion.Enabled = True

Me.tmrAnimacion.Interval = 250

Page 16: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

14

tmrAnimacion (Evento Tick)

Dim Fuente As New Font("Verdana", 30)

If Colores = 0 Then

Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.AliceBlue, Drawing.Color.AntiqueWhite,

Drawing2D.LinearGradientMode.Horizontal)

Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 20, 230)

ElseIf Colores = 1 Then

Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.Aqua, Drawing.Color.Aquamarine,

Drawing2D.LinearGradientMode.Vertical)

Imagen.DrawString("G D I", Fuente, Color, 200, 280)

ElseIf Colores = 2 Then

Dim Color As New

Drawing2D.LinearGradientBrush(ClientRectangle, Drawing.Color.Azure,

Drawing.Color.Beige, Drawing2D.LinearGradientMode.BackwardDiagonal)

Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 20, 230)

ElseIf Colores = 3 Then

Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.Bisque, Drawing.Color.Black,

Drawing2D.LinearGradientMode.ForwardDiagonal)

Imagen.DrawString("G D I", Fuente, Color, 200, 280)

ElseIf Colores = 4 Then

Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.BlanchedAlmond, Drawing.Color.Blue,

Drawing2D.LinearGradientMode.Horizontal)

Imagen.DrawString("Visual Basic .Net 2005", Fuente, Color, 20, 230)

ElseIf Colores = 5 Then

Dim Color As New Drawing2D.LinearGradientBrush(ClientRectangle,

Drawing.Color.BlueViolet, Drawing.Color.Brown,

Drawing2D.LinearGradientMode.Vertical)

Imagen.DrawString("G D I", Fuente, Color, 200, 280)

Colores = 0

End If

Colores = Colores + 1

frmAplicacion87 (Evento Load)

Imagen = Me.CreateGraphics()

btnSalir (Evento Click)

Me.Close()

Page 17: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

15

CONTROL PICTUREBOX

Como lo he mencionado antes, este control PictureBox nos permite mostrar

imágenes ya seas *.bmp, *.jpg, *.gif, *.png, etc. Las propiedades mas usadas de

este control son:

BackColor; la mayoría de veces la usamos para ponerle un color de fondo al

control, el color mas usado es el transparente.

SizeMode; nos indica como se adecua la imagen ante el control, ya sea

estirarlo o mejor dicho auto ajustar, tamaña original, Zoom y centrado.

BackgrounImageLayout; nos indica la forma en que se mostrara la imagen,

ya sea en mosaico, centrado, estirado o Zoom.

Image; aquí establecemos la imagen a mostrar en el tiempo de ejecución

del programa.

Como ya saben, en este control también podemos mostrar imágenes en tiempo

de ejecución, hay dos formas de hacerlo, ya sea mediante un array de imágenes o

mediante la ruta de la imagen, así que veremos las dos formas.

Mediante la dirección del archivo

PictureBox.Image = Image.FromFile(Direccion)

Mediante array de imagines (para hacerlo de esta forma, primero tendrán

que ingresar las imágenes al Resources, por ejemplo: nos ubicamos en la

propiedad image, como se muestra en la figura.

Page 18: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

16

Una vez ubicado en la propiedad image, daremos clic en el botón y se abrirá

la siguiente ventana, donde daremos clic en Import e importaremos (añadiremos)

las imágenes que vamos a usar, tal como se muestra la imagen.

Una vez añadidas las imágenes daremos clic en Ok de la ventana y después

haremos el siguiente código:

REM Declaramos un array de una dimensión y de un solo item llamado Luna de Tipo

REM Image y luego le asignaremos un valor al array de imágenes, en otras

REM palabras, en el índice 0 del array Luna, le asignaremos la imagen de MOON01

REM que esta almacenada en la carpeta Resources.

Protected Lunas(0) As Image

Lunas(0) = My.Resources.MOON01

REM Luego en la propiedad de Image del control, solo le asignaremos el Item 0 del

REM array

Me.PictureBox.Image = Lunas(0)

Para que me entiendan bien veremos un pequeño ejemplo sobre un array de

imágenes y del control PictureBox, para que lo entiendan mejor.

Page 19: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

17

88. Esta aplicación nos permite hallar el área de una circunferencia, mostrando una

pequeña animación.

Como vemos aquí añadiremos un TextBox llamado txtRadio, que nos

capturara el radio de la circunferencia, un Label llamado lblArea que nos mostrar el

área de la circunferencia hallada, un Button llamado btnSalir, que nos permitirá

salir de la aplicación, un Timer llamado tmrAnimación, que nos permitirá controlar

el tiempo que vamos a mostrar las imágenes, y un PictureBox llamado picLunas,

que nos mostrar las imágenes.

Declaramos variables a Nivel del Formulario

Protected Lunas(7) As Image

frmAplicacion88 (Evento Load)

Lunas(0) = My.Resources.MOON01

Lunas(1) = My.Resources.MOON02

Lunas(2) = My.Resources.MOON03

Lunas(3) = My.Resources.MOON04

Lunas(4) = My.Resources.MOON05

Lunas(5) = My.Resources.MOON06

Lunas(6) = My.Resources.MOON07

Lunas(7) = My.Resources.MOON08

Me.tmrAnimacion.Enabled = True

Me.tmrAnimacion.Interval = 100

Page 20: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

18

tmrAnimacion (Evento Tick)

If Me.picLunas.Image Is Lunas(0) Then

Me.picLunas.Image = Lunas(1)

ElseIf Me.picLunas.Image Is Lunas(1) Then

Me.picLunas.Image = Lunas(2)

ElseIf Me.picLunas.Image Is Lunas(2) Then

Me.picLunas.Image = Lunas(3)

ElseIf Me.picLunas.Image Is Lunas(3) Then

Me.picLunas.Image = Lunas(4)

ElseIf Me.picLunas.Image Is Lunas(4) Then

Me.picLunas.Image = Lunas(5)

ElseIf Me.picLunas.Image Is Lunas(5) Then

Me.picLunas.Image = Lunas(6)

ElseIf Me.picLunas.Image Is Lunas(6) Then

Me.picLunas.Image = Lunas(7)

Else

Me.picLunas.Image = Lunas(0)

End If

txtRadio (Evento TextChanged)

Const PI As Double = 3.14159

If IsNumeric(Me.txtRadio.Text) Then

Me.lblArea.Text = "Área = " & CStr(PI * Val(Me.txtRadio.Text) ^ 2) & " u²"

Else

Me.lblArea.Text = "ERROR: Ingrese una Cantidad Numérica"

End If

btnSalir (Evento Click)

Dim Resp As MsgBoxResult

Resp = MsgBox("¿Desea Terminar la Aplicación?", MsgBoxStyle.YesNo,

"Pregunta")

If Resp = MsgBoxResult.Yes Then

Me.Close()

End If

Fácil no?, como lo ven no es nada del otro mundo, como les vuelvo a repetir,

no estoy tocando a la profundidad las propiedades, métodos de cada control, ya

que solo este curso se dedica a realizar programas comerciales.

Page 21: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

19

CONTROL LISTBOX Y COMBOBOX

Estos dos controles (ListBox y ComboBox) se parecen mucho, tanto en sus

propiedades como en eventos, ya sea añadiendo elementos, eliminándolos,

obteniendo el elementos seleccionado, etc. Hay dos formas de ingresar los

elementos en estos controles, ya sea mediante un editor (en modo de diseño), o

mediante código (en tiempo de ejecución), para mi y creo que para la mayoría de

los programadores, la mejor forma de añadir los elementos es mediante código, así

que veremos como ingresar, eliminar, ordenar los elementos a un ListBox,

mediante un ejemplo, no se preocupen que para los combo box, también son

iguales.

Ejemplo

Esta aplicación nos permite ingresar un numero entero cualquiera a un

ListBox, y después podemos ordenarlos ascendentemente o descendentemente, o

eliminar los elementos seleccionados, también podremos hallar la media de los

elementos del control, teniendo en cuenta que si el número de elementos de la lista

es impar, la media es igual al número colocado en la posición media de la lista, o si

el numero de elementos de la lista es par, la media es igual al promedio de los dos

valores medios de la lista. NOTA que se debe de tener ordenados los elementos de

la lista en forma ascendente para poder hallar la media.

Page 22: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

20

Los controles tendrán su nombre respectivo, con referencia a su función, el

tectbox se llama txtNumIng, el botón añadir se llamara btnAñadir, el botón cerrar

se llamara btnCerrar, el botón ordenar se llamara btnOrdenar, el botón eliminar se

llamara btnEliminar, el botón ejecutar cálculo se llamara btnEjecutar, la lista de

números (ListBox) se llamará lstNumeros, el radio button ascendente se llamará

rdbAscendente y el del descendente se llamara rdbDescendente y por ultimo el

Label que muestra la media de la lista de números se llamara lblCalculo.

Cuando seleccionaremos un elemento o mas de uno, se activara el botón de

eliminar, en caso contrario debe de estar desactivado.

Declaramos variables a Nivel del Formulario

Dim Ordenado As Boolean = False

txtNumIng (Evento TextChanged)

If IsNumeric(Me.txtNumIng.Text) = True Then

Me.btnAñadir.Enabled = True

Else

Me.btnAñadir.Enabled = False

End If

btnAñadior (Evento Click)

Me.lstNumeros.Items.Add(Me.txtNumIng.Text)

Me.txtNumIng.Text = ""

Me.txtNumIng.Focus()

rdbAscendente (Evento CheckedChanged)

If Me.rdbAscendente.Checked = True Then

Me.btnOrdenar.Enabled = True

Else

Me.btnOrdenar.Enabled = False

End If

rdbDescendente (Evento CheckedChanged)

If Me.rdbDescendente.Checked = True Then

Me.btnOrdenar.Enabled = True

Else

Me.btnOrdenar.Enabled = False

End If

Page 23: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

21

btnOrdenar (Evento Click)

Dim NumItems, J, K, Mayor As Integer

NumItems = Me.lstNumeros.Items.Count - 1

Dim Temp(NumItems) As Integer

'Almacenamos los valores en un array temporal

For J = 0 To NumItems

Temp(J) = CInt(Me.lstNumeros.Items(J))

Next

'Método de Ordenación llamada BURBUJA

For J = 0 To NumItems

For K = 0 To NumItems

If K < NumItems Then

If Temp(K) > Temp(K + 1) Then

Mayor = Temp(K)

Temp(K) = Temp(K + 1)

Temp(K + 1) = Mayor

End If

End If

Next

Next

If Me.rdbAscendente.Checked = True Then

'Limpiar y Llenar el ListBox

Me.lstNumeros.Items.Clear()

For J = 0 To NumItems

Me.lstNumeros.Items.Add(CStr(Temp(J)))

Next

Ordenado = True

ElseIf Me.rdbDescendente.Checked = True Then

'Limpiar y Llenar el ListBox

Me.lstNumeros.Items.Clear()

For J = 0 To NumItems

Me.lstNumeros.Items.Add(CStr(Temp(NumItems - J)))

Next

Ordenado = False

End If

lstNumeros (Evento SelectedIndexChanged)

Me.btnEliminar.Enabled = True

btnEliminar (Evento Click)

Dim i As Integer

Me.btnEliminar.Enabled = False

With Me.lstNumeros

For i = .SelectedItems.Count - 1 To 0 Step -1

.Items.Remove(.SelectedItems.Item(i))

Next

End With

Page 24: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

22

btnEjecutar (Evento Click)

Dim NumItems, Index, Q As Integer

Dim Media As Single

NumItems = Me.lstNumeros.Items.Count

If Ordenado = False Then

MsgBox("Para Hallar la Media, Primero Debe de Ordenar los Elementos en

Forma Ascendente", MsgBoxStyle.Information, "ERROR!")

Exit Sub

End If

Q = NumItems \ 2

Index = NumItems - (Q * 2)

If Index = 0 Then

Index = CInt(Me.lstNumeros.Items.Count) \ 2

Media = (CSng(CInt(Me.lstNumeros.Items(Index)) +

CInt(Me.lstNumeros.Items(Index - 1)))) / 2

Else

Index = CInt(Me.lstNumeros.Items.Count) \ 2

Media = CSng(CInt(Me.lstNumeros.Items(Index)))

End If

Me.lblCalculo.Text = CStr(Media)

btnOrdenar (Evento Click)

Me.Close()

Para los que son primerizos en este lenguaje de Visual Basic, todo es nuevo

para ustedes, ósea en otras palabras, para agregar, eliminar o saber el numero de

elementos que hay en una lista, ya sea ListBox o ComboBox, siempre tendremos

que hacer invocación al miembro de Ítems del control, por ejemplo, les dejo

algunas instrucciones que mas se utilizan en los dos controles.

Para añadir a un elemento

ListBox1.Items.Add(Cadena de Texto)

ComboBox1.Items.Add(Cadena de Texto)

Para eliminar un elemento

ListBox1.Items.Remove(Numero del Elemento a Eliminar)

ComboBox1.Items.Remove(Numero del Elemento a Eliminar)

Para saber que elemento se ha seleccionado

Variable = ListBox1.SelectedIndex()

Variable = ComboBox1.SelectedIndex()

Page 25: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

23

Para Saber el Numero de los Elementos de la Lista

Variable = ListBox1.Items.Count()

Variable = ComboBox1.Items.Count()

Para seleccionar un Elemento

ListBox1.SelectedIndex = Numero del Elemento a seleccionar

ComboBox1.SelectedIndex = Numero del Elemento a seleccionar

Como ya vieron no es nada del otro mundo esto de listas y combo, vamos a

hacer un ejercicio de estos dos controles, para que le agarren la onda al ritmo de la

music electronic de DJ Tiesto, ok!, pero primero realizaremos un ejercicio con el

controls Timer y las funciones de fecha, y de paso les explico lo del control Timer,

que se me paso, ups!.

89. Esta aplicación nos permitirá hallar la venta de un producto cualquiera,

calculando el Subtotal, IGV y Total de la venta, y a su vez nos mostrara la hora

actualizándose cada segundo, mediante un control Timer.

Page 26: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

24

Primero comencemos con los nombres de cada control, aunque creo que

esto es lo que mas me toma tiempo, empecemos, el Label que nos mostrara la

fecha se llamara lblFecha, el que nos mostrara se llamara lblHora, el del subtotal se

llamara lblSubTotal, el del total se llamara lblTotal y el del IGV se llamara lblIgv, el

TextBox que captura el nombre del producto se llamara txtNombProd, el del precio

unitario se llamara txtPrecUnit y el de la cantidad se llamara txtCant, los botones

de Nuevo, Resultados y Salir se llamaran btnNuevo, btnResultados y btnSalir,

respectivamente.

frmAplicacion89 (Evento FormClosing) Dim Resp As MsgBoxResult

Resp = MsgBox("¿Desea salir de la Aplicación?", MsgBoxStyle.YesNo,

"Cuidado")

If Resp = MsgBoxResult.No Then

e.Cancel = True

End If

frmAplicacion89 (Evento Load)

Me.tmrHora.Enabled = True

Me.lblFecha.Text = Format(Now, "dd - MMMM - yyyy")

Me.lblHora.Text = Format(Now, "hh:mm:ss tt")

Me.Text = Space(40) + "Ventas"

tmrHora (Evento Tick)

Me.lblHora.Text = Format(Now, "hh:mm:ss tt")

btnSalir (Evento Click)

Me.Close()

btnNuevo (Evento Click)

Me.txtCant.Text = ""

Me.txtNombProd.Text = ""

Me.txtPrecUnit.Text = ""

Me.lblIgv.Text = ""

Me.lblSubTotal.Text = ""

Me.lblTotal.Text = ""

Me.txtNombProd.Focus()

Page 27: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

25

btnResultados (Evento Click)

Dim SubTotal, IGV, Total As Single

SubTotal = CStr(Val(Me.txtCant.Text) * Val(Me.txtPrecUnit.Text))

IGV = SubTotal * 0.19

Total = IGV + SubTotal

Me.lblSubTotal.Text = Format(SubTotal, "###,##0.00")

Me.lblIgv.Text = Format(IGV, "###,##0.00")

Me.lblTotal.Text = Format(Total, "###,##0.00")

Lo único que deben de saber del control Timer es que cuando uno lo crea, se

crea desactivado, así que se tiene que activar el control para poder usarlo, esto se

hace mediante la propiedad Enabled, en la cual tiene que estar en True, y el

intervalo en que el control se actualizara, por ejemplo, el intervalo de 100 es

equivalente a un segundo.

90. Esta aplicación nos permitirá realizar una pro forma de venta de una tienda

comercial de computo, consta de dos formularios, uno que es el principal

llamado frmAplicacion90 y otro llamado frmInfo, esta aplicación esta basada en

arreglos y datos almacenados en el programa, con el fin de darnos cuenta que

tan importante es tener un diseñador de base de datos, ya que la aplicación sin

base de datos que maneje información se haría engorrosa y los datos no

estarían tan seguros, veamos un ejemplo de este tipo de aplicación sin una base

de datos, y como seria su programación, primero veremos por formulario, así

que el primero será el formulario frmInfo.

frmInfo

Este formulario tendrá un GropuBox que conservara su propio nombre y los

Labels de este formulario que solo nos mostraran lo que recepcionan del otro

formulario, tendrán los siguientes nombres, de acuerdo a su etiqueta de su

costado; lblMainboard, lblProcesador, lblDiscoDuro, lblMemoriaRAM, lblTarjVideo,

lblTarjRed, lblCase.

Page 28: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

26

Y el único que contendrá el formulario va a ser en el control GroupBox1.

GroupBox1 (Evento Click)

Me.Close()

frmAplicacion90

Page 29: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

27

Ahora pondremos los nombres respectivos a cada control, en este caso, yo

solo daré referencia a que control me refiero y ustedes deben de saber identificar

que control es. Ok!, por ejemplo en que forma se esta mostrando los Buttons, los

GroupBox y el PictureBox.

Text Name

Cantidad nudCantidad

Articulo cboArticuo

Marca cboMarca

Modelo cboModelo

Precio Unitario lblPrecUnit

Total lblTotal

Adicionar btnAdicionar

Cancelar btnCancelar

Descripción btnDescripcion

Imagen picArticulo

Lista de Cantidad lstCantidad

Lista de Descripción lstDescripcion

Lista de Precio Unitario lstPrecUnit

Lista de Total lstTotal

Subtotal lblSubTotalProf

IGV lblIGV

Total lblTotalProf

Nueva Pro forma btnNuevo

Eliminar Articulo btnEliminar

Salir btnSalir

¿QUE ES LO QUE SE PIDE?

Para este caso se pide que esta aplicación se pueda escoger un articulo y

nos muestre su imagen referencial, la marca y el modelo del articulo, y a su vez

nos muestre el precio unitario y el precio total, existe un caso en que cuando

selecciona un CPU, se nos pueda mostrar su descripción de ella nada mas, también

podremos añadir los artículos seleccionados al carrito, y también eliminar

elementos seleccionados y nos debe de mostrar el total de todos los productos, el

subtotal y el IGV. Y para los que les guste hacerlo más perfecto, también le pueden

agregar un botón de impresión donde se imprimirá el formulario en pantalla.

Una vez ya tenido el diseños del formulario listo y sus descripciones que

debe tener, procederemos a la larga, pero larga, larga codificación.

Page 30: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

28

Declaramos variables a Nivel del Formulario

Dim Marca(14) As String

Dim ModeloImpresora(14), ModeloPC(11), ModeloCD(1), ModeloDVD(1) As String

Dim ModeloUSB(3), ModeloModem(1), ModeloMonitor(7), ModeloMP3(5) As String

Dim ModeloScaner(9), ModeloTeclado(1), ModeloVideoCamara(1), ModeloWebCam(1) As String

Dim DescripcionPC(83) As String

Dim Imagenes(15) As Image

Dim IndexArticulo, IndexMarca, IndexModelo As Integer

Dim Añadir As Boolean = True

Función Limpiar esta función limpiara los controles del formulario

Sub Limpiar()

Me.cboArticulo.Text = ""

Me.cboMarca.Text = ""

Me.cboModelo.Text = ""

Me.lblIGV.Text = ""

Me.lblPrecUnit.Text = ""

Me.lblSubTotalProf.Text = ""

Me.lblTotal.Text = ""

Me.lblTotalProf.Text = ""

Me.lstCantidad.Items.Clear()

Me.lstDescripcion.Items.Clear()

Me.lstPrecUnit.Items.Clear()

Me.lstTotal.Items.Clear()

Me.picArticulo.Image = Imagenes(15)

End Sub

Función MarcaArticulo esta función almacenara en el array Marca, las marcas

respectivas de los artículos, válgala redundancia.

Sub MarcaArticulo()

Marca(0) = "Micronics"

Marca(1) = "Cybertel"

Marca(2) = "Creative"

Marca(3) = "LG"

Marca(4) = "Samsung"

Marca(5) = "NEC"

Marca(6) = "HP"

Marca(7) = "Canon"

Marca(8) = "Lexmark"

Marca(9) = "Epson"

Marca(10) = "Xerox"

Marca(11) = "Intel"

Marca(12) = "PC Chips"

Marca(13) = "Syntax"

Marca(14) = "ASROCK"

End Sub

Page 31: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

29

Función ModeloPCs esta función almacena los distintos modelos de PCs

Sub ModeloPCs()

ModeloPC(0) = "Intel PIV 2.8 GHZ"

ModeloPC(1) = "Intel PIV 3.0 GHZ"

ModeloPC(2) = "Intel CEL 2.53 GHZ"

ModeloPC(3) = "PC Chips 2.4 GHZ"

ModeloPC(4) = "PC Chips 2.8 GHZ"

ModeloPC(5) = "PC Chips CEL 2.53 GHZ"

ModeloPC(6) = "Syntax PIV 2.4 GHZ"

ModeloPC(7) = "Syntax PIV 2.8 GHZ"

ModeloPC(8) = "Syntax CEL 2.53 GHZ"

ModeloPC(9) = "ASROCK P4 2.4 GHZ"

ModeloPC(10) = "ASROCK P4 2.8 GHZ"

ModeloPC(11) = "ASROCK CEL 2.53 GHZ"

End Sub

Función ModeloImpresoras esta función almacena los distintos modelos de

impresora

Sub ModeloImpresoras()

ModeloImpresora(0) = "HP Deskjet 3920"

ModeloImpresora(1) = "HP Multifuncional 1410"

ModeloImpresora(2) = "HP Laserjet Color 2600N"

ModeloImpresora(3) = "Canon IP-1200 Color"

ModeloImpresora(4) = "Canon IP-1600 Color"

ModeloImpresora(5) = "Canon Multifuncional MP-150"

ModeloImpresora(6) = "Lexmark Color Z515"

ModeloImpresora(7) = "Lexmark Multifuncional X1195"

ModeloImpresora(8) = "Lexmark Multifuncional X4270"

ModeloImpresora(9) = "Epson Stylus C45 U"

ModeloImpresora(10) = "Epson LX300+"

ModeloImpresora(11) = "Epson FX-2190"

ModeloImpresora(12) = "Xerox Laser 3116"

ModeloImpresora(13) = "Xerox Laser Multifuncional PE114"

ModeloImpresora(14) = "Xerox Laser Color 6100 DB"

End Sub

Función ModeloCDs esta función almacena los distintos modelos de Lectoras

Sub ModeloCDs()

ModeloCD(0) = "52x24x52 Negro"

ModeloCD(1) = "52x24x52 Blanco"

End Sub

Función ModeloDVDs esta función almacena los distintos modelos de

Quemadores

Sub ModeloDVDs()

ModeloDVD(0) = "16x Negro"

ModeloDVD(1) = "16x Blanco"

End Sub

Page 32: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

30

Función ModeloUSBs esta función almacena los distintos modelos de memorias

USBs

Sub ModeloUSBs()

ModeloUSB(0) = "64 MB"

ModeloUSB(1) = "128 MB"

ModeloUSB(2) = "256 MB"

ModeloUSB(3) = "512 MB"

End Sub

Función ModeloModems esta función almacena los distintos modelos de Modems

Sub ModeloModems()

ModeloModem(0) = "Z135 ADSL"

ModeloModem(1) = "Z135 DSL"

End Sub

Función ModeloMonitores esta función almacena los distintos modelos de

Monitor

Sub ModeloMonitores()

ModeloMonitor(0) = "15' 591S Negro"

ModeloMonitor(1) = "17' 793S Negro"

ModeloMonitor(2) = "15' 591S Blanco"

ModeloMonitor(3) = "17' 793S Blanco"

ModeloMonitor(4) = "15' T530SS FLAT Negro"

ModeloMonitor(5) = "17' L1750 LCD Negro"

ModeloMonitor(6) = "15' T530SS FLAT Blanco"

ModeloMonitor(7) = "17' L1750 LCD Blanco"

End Sub

Función ModeloMP3s esta función almacena los distintos modelos de

reproductores MP3s

Sub ModeloMP3s()

ModeloMP3(0) = "128 MB"

ModeloMP3(1) = "256 MB"

ModeloMP3(2) = "512 MB"

ModeloMP3(3) = "128 MB / Radio FM"

ModeloMP3(4) = "256 MB / Radio FM"

ModeloMP3(5) = "512 MB / Radio FM"

End Sub

Page 33: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

31

Función ModeloScaners esta función almacena los distintos modelos de Scaner

Sub ModeloScaners()

ModeloScaner(0) = "2400 USB 2400x2400 DPI"

ModeloScaner(1) = "4070 USB 2400x2400 DPI"

ModeloScaner(2) = "LIDE 25 USB"

ModeloScaner(3) = "LIDE 32 USB"

ModeloScaner(4) = "1800 USB 2400x2400 DPI"

ModeloScaner(5) = "2500 USB 2400x2400 DPI"

ModeloScaner(6) = "15T USB 2400x2400 DPI"

ModeloScaner(7) = "18T USB 2400x2400 DPI"

ModeloScaner(8) = "450RT USB 2400x2400 DPI"

ModeloScaner(9) = "500RT USB 2400x2400 DPI"

End Sub

Función ModeloTeclados esta función almacena los distintos modelos de Teclado

Sub ModeloTeclados()

ModeloTeclado(0) = "Office Set"

ModeloTeclado(1) = "Multimedia"

End Sub

Función ModeloVideoCamras esta función almacena los distintos modelos de

Video Cámaras

Sub ModeloVideoCamaras()

ModeloVideoCamara(0) = "Zoom 5x, Pantalla LCD 2.5'"

ModeloVideoCamara(1) = "Zoom 4x, Pantalla LCD 2.5'"

End Sub

Función ModeloWebCams esta función almacena los distintos modelos de Web

Cam

Sub ModeloWebCams()

ModeloWebCam(0) = "600x480 Pxls."

ModeloWebCam(1) = "800x600 Pxls."

End Sub

Función DescripcionesPC esta función almacena las descripciones de cada PC

Sub DescripcionesPC()

DescripcionPC(0) = "INTEL 865 GVHZ/ Tarj. Sonido Integrado"

DescripcionPC(1) = "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA"

DescripcionPC(2) = "SAMSUNG 80GB 7200 RPM IDE"

DescripcionPC(3) = "SPECTEK 512MB PC 533"

DescripcionPC(4) = "ATI 8X 128MB DDR RADEON 9250 TV/OUT"

DescripcionPC(5) = "D-LINK DFE - 530TX 10/100"

DescripcionPC(6) = "PENTIUM IV 500W PRESCOTT"

DescripcionPC(7) = "INTEL 915 GAGL/ Tarj. Sonido Integrado"

DescripcionPC(8) = "INTEL PIV 3.0 GHZ 1MB, 800MHZ, LGA"

DescripcionPC(9) = "SAMSUNG 80GB 7200 RPM IDE"

Page 34: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

32

DescripcionPC(10) = "SPECTEK 512MB PC 800"

DescripcionPC(11) = "ATI 8X 128MB DDR RADEON 9250 TV/OUT"

DescripcionPC(12) = "D-LINK DFE - 530TX 10/100"

DescripcionPC(13) = "PENTIUM IV 500W PRESCOTT"

DescripcionPC(14) = "INTEL 865 PERLL/ Tarj. Sonido Integrado"

DescripcionPC(15) = "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA"

DescripcionPC(16) = "SAMSUNG 40GB 7200 RPM IDE"

DescripcionPC(17) = "SPECTEK 256MB PC 533"

DescripcionPC(18) = "ATI 4X 64MB DDR RADEON 7000 TV/OUT"

DescripcionPC(19) = "D-LINK DFE - 530TX 10/100"

DescripcionPC(20) = "PENTIUM IV 400W PRESCOTT"

DescripcionPC(21) = "PC CHIPS P25G B800/ Tarj. Sonido Integrado"

DescripcionPC(22) = "INTEL PIV 2.4 GHZ 512KB, 533MHZ, PGA"

DescripcionPC(23) = "SAMSUNG 80GB 7200 RPM IDE"

DescripcionPC(24) = "SPECTEK 512MB PC 533"

DescripcionPC(25) = "Tarj. Video 64MB Incorporado"

DescripcionPC(26) = "Tarj. Red Encore 10/100 Incorporado"

DescripcionPC(27) = "PENTIUM IV 500W PRESCOTT"

DescripcionPC(28) = "PC CHIPS P25G B800/ Tarj. Sonido Integrado"

DescripcionPC(29) = "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA"

DescripcionPC(30) = "SAMSUNG 80GB 7200 RPM IDE"

DescripcionPC(31) = "SPECTEK 512MB PC 533"

DescripcionPC(32) = "Tarj. Video 64MB Incorporado"

DescripcionPC(33) = "Tarj. Red Encore 10/100 Incorporado"

DescripcionPC(34) = "PENTIUM IV 500W PRESCOTT"

DescripcionPC(35) = "PC CHIPS P25 B800/ Tarj. Sonido Integrado"

DescripcionPC(36) = "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA"

DescripcionPC(37) = "SAMSUNG 80GB 7200 RPM IDE"

DescripcionPC(38) = "SPECTEK 256MB PC 533"

DescripcionPC(39) = "Tarj. Video 64MB Incorporado"

DescripcionPC(40) = "Tarj. Red Encore 10/100 Incorporado"

DescripcionPC(41) = "PENTIUM IV 400W PRESCOTT"

DescripcionPC(42) = "SYNTAX TXTPRO/ Tarj. Sonido Integrado"

DescripcionPC(43) = "INTEL PIV 2.4 GHZ 512KB, 533MHZ, PGA"

DescripcionPC(44) = "SAMSUNG 80GB 7200 RPM IDE"

DescripcionPC(45) = "SPECTEK 512MB PC 533"

DescripcionPC(46) = "ATI 8X 128MB DDR RADEON 9250 TV/OUT"

DescripcionPC(47) = "3-COM 10/100 / Integrado"

DescripcionPC(48) = "PENTIUM IV 500W PRESCOTT"

DescripcionPC(49) = "SYNTAX TXTPRO/ Tarj. Sonido Integrado"

DescripcionPC(50) = "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA"

DescripcionPC(51) = "SAMSUNG 80GB 7200 RPM IDE"

DescripcionPC(52) = "SPECTEK 512MB PC 800"

DescripcionPC(53) = "ATI 8X 128MB DDR RADEON 9250 TV/OUT"

DescripcionPC(54) = "3-COM 10/100 / Integrado"

DescripcionPC(55) = "PENTIUM IV 500W PRESCOTT"

DescripcionPC(56) = "SYNTAX TXTPRO/ Tarj. Sonido Integrado"

DescripcionPC(57) = "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA"

DescripcionPC(58) = "SAMSUNG 40GB 7200 RPM IDE"

DescripcionPC(59) = "SPECTEK 256MB PC 533"

DescripcionPC(60) = "ATI 4X 64MB DDR RADEON 7000 TV/OUT"

DescripcionPC(61) = "3-COM 10/100 / Integrado"

DescripcionPC(62) = "PENTIUM IV 400W PRESCOTT"

DescripcionPC(63) = "ASROCK VIA M800/ Tarj. Sonido Integrado"

DescripcionPC(64) = "INTEL PIV 2.4 GHZ 512KB, 533MHZ, PGA"

DescripcionPC(65) = "SAMSUNG 80GB 7200 RPM IDE"

Page 35: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

33

DescripcionPC(66) = "SPECTEK 512MB PC 533"

DescripcionPC(67) = "ATI 8X 128MB DDR RADEON 9250 TV/OUT"

DescripcionPC(68) = "3-COM 10/100 / Integrado"

DescripcionPC(69) = "PENTIUM IV 500W PRESCOTT"

DescripcionPC(70) = "ASROCK VIA M800/ Tarj. Sonido Integrado"

DescripcionPC(71) = "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA"

DescripcionPC(72) = "SAMSUNG 80GB 7200 RPM IDE"

DescripcionPC(73) = "SPECTEK 512MB PC 800"

DescripcionPC(74) = "ATI 8X 128MB DDR RADEON 9250 TV/OUT"

DescripcionPC(75) = "3-COM 10/100 / Integrado"

DescripcionPC(76) = "PENTIUM IV 500W PRESCOTT"

DescripcionPC(77) = "ASROCK VIA M800/ Tarj. Sonido Integrado"

DescripcionPC(78) = "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA"

DescripcionPC(79) = "SAMSUNG 40GB 7200 RPM IDE"

DescripcionPC(80) = "SPECTEK 256MB PC 533"

DescripcionPC(81) = "ATI 4X 64MB DDR RADEON 7000 TV/OUT"

DescripcionPC(82) = "3-COM 10/100 / Integrado"

DescripcionPC(83) = "PENTIUM IV 400W PRESCOTT"

End Sub

Función LlenarMarcas esta función Llena las marcas respectivas de cada articulo

en el combo de Marcas del Articulo.

Sub LlenarMarcas()

Dim Inicio, Final As Integer

Dim J As Integer

Select Case IndexArticulo

Case 0, 6, 9, 10, 12, 14

Inicio = 0

Final = 2

Case 1, 3, 8, 13

Inicio = 3

Final = 4

Case 5, 11

Inicio = 6

Final = 10

Case 2

Inicio = 11

Final = 14

Case 4

Inicio = 2

Final = 5

Case 7

Inicio = 11

Final = 11

End Select

Me.cboMarca.Text = ""

Me.cboMarca.Items.Clear()

For J = Inicio To Final

Me.cboMarca.Items.Add(Marca(J))

Next

End Sub

Page 36: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

34

Función LlenarModelos esta función Llena los modelos respectivos de cada

articulo en el combo de Modelo del Articulo.

Sub LlenarModelos()

Dim J As Integer

IndexMarca = Me.cboMarca.SelectedIndex

Me.cboModelo.Text = ""

Select Case IndexArticulo

Case 0, 4, 9

Me.cboModelo.Enabled = False

Case Else

Me.cboModelo.Enabled = True

End Select

Select Case IndexArticulo

Case 1

Call ModeloCDs()

Me.cboModelo.Items.Clear()

For J = 0 To 1

Me.cboModelo.Items.Add(ModeloCD(J))

Next

Case 2

Call ModeloPCs()

Me.cboModelo.Items.Clear()

Select Case IndexMarca

Case 0

For J = 0 To 2

Me.cboModelo.Items.Add(ModeloPC(J))

Next

Case 1

For J = 3 To 5

Me.cboModelo.Items.Add(ModeloPC(J))

Next

Case 2

For J = 6 To 8

Me.cboModelo.Items.Add(ModeloPC(J))

Next

Case 3

For J = 9 To 11

Me.cboModelo.Items.Add(ModeloPC(J))

Next

End Select

Case 3

Call ModeloDVDs()

Me.cboModelo.Items.Clear()

For J = 0 To 1

Me.cboModelo.Items.Add(ModeloDVD(J))

Next

Case 5

Call ModeloImpresoras()

Me.cboModelo.Items.Clear()

Select Case IndexMarca

Case 0

For J = 0 To 2

Me.cboModelo.Items.Add(ModeloImpresora(J))

Next

Page 37: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

35

Case 1

For J = 3 To 5

Me.cboModelo.Items.Add(ModeloImpresora(J))

Next

Case 2

For J = 6 To 8

Me.cboModelo.Items.Add(ModeloImpresora(J))

Next

Case 3

For J = 9 To 11

Me.cboModelo.Items.Add(ModeloImpresora(J))

Next

Case 4

For J = 12 To 14

Me.cboModelo.Items.Add(ModeloImpresora(J))

Next

End Select

Case 6

Call ModeloUSBs()

Me.cboModelo.Items.Clear()

For J = 0 To 3

Me.cboModelo.Items.Add(ModeloUSB(J))

Next

Case 7

Call ModeloModems()

Me.cboModelo.Items.Clear()

For J = 0 To 1

Me.cboModelo.Items.Add(ModeloModem(J))

Next

Case 8

Call ModeloMonitores()

Me.cboModelo.Items.Clear()

Select Case IndexMarca

Case 1

For J = 0 To 3

Me.cboModelo.Items.Add(ModeloMonitor(J))

Next

Case 0

For J = 4 To 7

Me.cboModelo.Items.Add(ModeloMonitor(J))

Next

End Select

Case 10

Call ModeloMP3s()

Me.cboModelo.Items.Clear()

For J = 0 To 5

Me.cboModelo.Items.Add(ModeloMP3(J))

Next

Case 11

Call ModeloScaners()

Me.cboModelo.Items.Clear()

Select Case IndexMarca

Case 0

For J = 0 To 1

Me.cboModelo.Items.Add(ModeloScaner(J))

Next

Page 38: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

36

Case 1

For J = 2 To 3

Me.cboModelo.Items.Add(ModeloScaner(J))

Next

Case 2

For J = 4 To 5

Me.cboModelo.Items.Add(ModeloScaner(J))

Next

Case 3

For J = 6 To 7

Me.cboModelo.Items.Add(ModeloScaner(J))

Next

Case 4

For J = 8 To 9

Me.cboModelo.Items.Add(ModeloScaner(J))

Next

End Select

Case 12

Call ModeloTeclados()

Me.cboModelo.Items.Clear()

For J = 0 To 1

Me.cboModelo.Items.Add(ModeloTeclado(J))

Next

Case 13

Call ModeloVideoCamaras()

Me.cboModelo.Items.Clear()

For J = 0 To 1

Me.cboModelo.Items.Add(ModeloVideoCamara(J))

Next

Case 14

Call ModeloWebCams()

Me.cboModelo.Items.Clear()

For J = 0 To 1

Me.cboModelo.Items.Add(ModeloWebCam(J))

Next

End Select

End Sub

Función SumarTotales esta función halla el total a pagar de los artículos añadidos

(Precios).

Sub SumarTotales()

Dim J As Integer

Dim Total, SubTotal, IGV As Double

Total = 0

For J = 0 To Me.lstTotal.Items.Count - 1

Total = Total + Val(Me.lstTotal.Items(J))

Next

SubTotal = Total * 0.81

IGV = Total - SubTotal

Me.lblSubTotalProf.Text = Format(SubTotal, "###,##0.00")

Me.lblIGV.Text = Format(IGV, "###,##0.00")

Me.lblTotalProf.Text = Format(Total, "###,##0.00")

End Sub

Page 39: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

37

frmAplicacion90 (Evento FormClosing)

If MsgBox("¿Desea Salir de la Aplicación?", MsgBoxStyle.YesNo, "Cuidado") =

MsgBoxResult.No Then

e.Cancel = True

End If

frmAplicacion90 (Evento Load)

Me.cboArticulo.Items.Add("Audifonos")

Me.cboArticulo.Items.Add("Lectora de CD")

Me.cboArticulo.Items.Add("CPU")

Me.cboArticulo.Items.Add("Lectora de DVD")

Me.cboArticulo.Items.Add("Floppy 3 1/2")

Me.cboArticulo.Items.Add("Impresora")

Me.cboArticulo.Items.Add("Memoria USB")

Me.cboArticulo.Items.Add("Modem")

Me.cboArticulo.Items.Add("Monitor")

Me.cboArticulo.Items.Add("Mouse")

Me.cboArticulo.Items.Add("Reporductor MP3")

Me.cboArticulo.Items.Add("Scaner")

Me.cboArticulo.Items.Add("Teclado")

Me.cboArticulo.Items.Add("Video Camara")

Me.cboArticulo.Items.Add("Web Cam")

Imagenes(0) = My.Resources.Audifonos

Imagenes(1) = My.Resources.CD

Imagenes(2) = My.Resources.CPU

Imagenes(3) = My.Resources.DVD

Imagenes(4) = My.Resources.Floppy_Drive

Imagenes(5) = My.Resources.Impresora

Imagenes(6) = My.Resources.Memoria_USB

Imagenes(7) = My.Resources.Modem

Imagenes(8) = My.Resources.Monitor

Imagenes(9) = My.Resources.Mouse

Imagenes(10) = My.Resources.MP3

Imagenes(11) = My.Resources.Scanner

Imagenes(12) = My.Resources.Teclado

Imagenes(13) = My.Resources.Video_Camara

Imagenes(14) = My.Resources.Webcam

Imagenes(15) = My.Resources.PC

Call Limpiar()

cboArticulo (Evento SelectedIndexChanged)

IndexArticulo = Me.cboArticulo.SelectedIndex

Me.picArticulo.Image = Imagenes(IndexArticulo)

Me.cboModelo.Text = ""

Me.lblPrecUnit.Text = ""

Me.lblTotal.Text = ""

Me.cboMarca.Enabled = True

Call MarcaArticulo()

Call LlenarMarcas()

If IndexArticulo <> 2 Then

Page 40: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

38

Me.btnDescripcion.Enabled = False

Else

Me.btnDescripcion.Enabled = True

End If

btnDescripcion (Evento Click)

Dim Inicio As Integer

If Me.cboMarca.Text = "" Then

MsgBox("Seleccione la Marca de la PC", MsgBoxStyle.Information,

"Cuidado!")

ElseIf Me.cboModelo.Text = "" Then

MsgBox("Seleccione el Modelo de la PC", MsgBoxStyle.Information,

"Cuidado!")

Else

Call DescripcionesPC()

IndexMarca = Me.cboMarca.SelectedIndex

IndexModelo = Me.cboModelo.SelectedIndex

Select Case IndexMarca

Case 0

Select Case IndexModelo

Case 0 : Inicio = 0

Case 1 : Inicio = 7

Case 2 : Inicio = 14

End Select

Case 1

Select Case IndexModelo

Case 0 : Inicio = 21

Case 1 : Inicio = 28

Case 2 : Inicio = 35

End Select

Case 2

Select Case IndexModelo

Case 0 : Inicio = 42

Case 1 : Inicio = 49

Case 2 : Inicio = 56

End Select

Case 3

Select Case IndexModelo

Case 0 : Inicio = 63

Case 1 : Inicio = 70

Case 2 : Inicio = 77

End Select

End Select

My.Forms.frmInfo.lblMainboard.Text = DescripcionPC(Inicio)

My.Forms.frmInfo.lblProcesador.Text = DescripcionPC(Inicio + 1)

My.Forms.frmInfo.lblDiscoDuro.Text = DescripcionPC(Inicio + 2)

My.Forms.frmInfo.lblMemoriaRAM.Text = DescripcionPC(Inicio + 3)

My.Forms.frmInfo.lblTarjVideo.Text = DescripcionPC(Inicio + 4)

My.Forms.frmInfo.lblTarjRed.Text = DescripcionPC(Inicio + 5)

My.Forms.frmInfo.lblCase.Text = DescripcionPC(Inicio + 6)

frmInfo.ShowDialog()

End If

Page 41: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

39

cboMarca (Evento SelectedIndexChanged)

Call LlenarModelos()

IndexMarca = Me.cboMarca.SelectedIndex

Select Case IndexArticulo

Case 0

Select Case IndexMarca

Case 0 : Me.lblPrecUnit.Text = "4.10"

Case 1 : Me.lblPrecUnit.Text = "4.00"

Case 2 : Me.lblPrecUnit.Text = "4.15"

End Select

Añadir = True

Case 4

Select Case IndexMarca

Case 0 : Me.lblPrecUnit.Text = "9.50"

Case 1 : Me.lblPrecUnit.Text = "9.15"

Case 2 : Me.lblPrecUnit.Text = "9.30"

Case 3 : Me.lblPrecUnit.Text = "10.20"

End Select

Añadir = True

Case 9

Select Case IndexMarca

Case 0 : Me.lblPrecUnit.Text = "7.50"

Case 1 : Me.lblPrecUnit.Text = "7.10"

Case 2 : Me.lblPrecUnit.Text = "7.95"

End Select

Añadir = True

Case Else

Me.lblPrecUnit.Text = "0.00"

Añadir = False

End Select

Me.lblTotal.Text = Format(Val(Me.lblPrecUnit.Text) * Me.nudCantidad.Value,

"#####0.00")

nudCantidad (Evento ValueChanged)

Me.lblTotal.Text = Format(Val(Me.lblPrecUnit.Text) * Me.nudCantidad.Value,

"#####0.00")

cboModelo (Evento SelectedIndexChanged)

IndexArticulo = Me.cboArticulo.SelectedIndex

IndexMarca = Me.cboMarca.SelectedIndex

IndexModelo = Me.cboModelo.SelectedIndex

Select Case IndexArticulo

Case 1

Select Case IndexMarca

Case 0 : Me.lblPrecUnit.Text = "29.00"

Case 1 : Me.lblPrecUnit.Text = "30.00"

End Select

Case 2

Select Case IndexMarca

Case 0

Select Case IndexModelo

Page 42: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

40

Case 0 : Me.lblPrecUnit.Text = "579.00"

Case 1 : Me.lblPrecUnit.Text = "689.00"

Case 2 : Me.lblPrecUnit.Text = "499.00"

End Select

Case 1

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "510.00"

Case 1 : Me.lblPrecUnit.Text = "560.00"

Case 2 : Me.lblPrecUnit.Text = "459.00"

End Select

Case 2

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "532.00"

Case 1 : Me.lblPrecUnit.Text = "619.00"

Case 2 : Me.lblPrecUnit.Text = "489.00"

End Select

Case 3

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "530.00"

Case 1 : Me.lblPrecUnit.Text = "614.00"

Case 2 : Me.lblPrecUnit.Text = "480.00"

End Select

End Select

Case 3

Select Case IndexMarca

Case 0 : Me.lblPrecUnit.Text = "60.00"

Case 1 : Me.lblPrecUnit.Text = "63.00"

End Select

Case 5

Select Case IndexMarca

Case 0

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "179.00"

Case 1 : Me.lblPrecUnit.Text = "239.00"

Case 2 : Me.lblPrecUnit.Text = "320.00"

End Select

Case 1

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "139.00"

Case 1 : Me.lblPrecUnit.Text = "159.00"

Case 2 : Me.lblPrecUnit.Text = "239.00"

End Select

Case 2

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "149.00"

Case 1 : Me.lblPrecUnit.Text = "239.00"

Case 2 : Me.lblPrecUnit.Text = "259.00"

End Select

Case 3

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "129.00"

Case 1 : Me.lblPrecUnit.Text = "149.00"

Case 2 : Me.lblPrecUnit.Text = "179.00"

End Select

Case 4

Select Case IndexModelo

Page 43: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

41

Case 0 : Me.lblPrecUnit.Text = "189.00"

Case 1 : Me.lblPrecUnit.Text = "259.00"

Case 2 : Me.lblPrecUnit.Text = "350.00"

End Select

End Select

Case 6

Select Case IndexMarca

Case 0

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "42.00"

Case 1 : Me.lblPrecUnit.Text = "62.00"

Case 2 : Me.lblPrecUnit.Text = "84.00"

Case 3 : Me.lblPrecUnit.Text = "96.00"

End Select

Case 1

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "41.00"

Case 1 : Me.lblPrecUnit.Text = "63.00"

Case 2 : Me.lblPrecUnit.Text = "82.00"

Case 3 : Me.lblPrecUnit.Text = "99.00"

End Select

Case 2

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "42.00"

Case 1 : Me.lblPrecUnit.Text = "64.00"

Case 2 : Me.lblPrecUnit.Text = "86.00"

Case 3 : Me.lblPrecUnit.Text = "92.00"

End Select

End Select

Case 7

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "89.00"

Case 1 : Me.lblPrecUnit.Text = "69.00"

End Select

Case 8

Select Case IndexMarca

Case 0

Select Case IndexModelo

Case 0, 2 : Me.lblPrecUnit.Text = "320.00"

Case 1, 3 : Me.lblPrecUnit.Text = "290.00"

End Select

Case 1

Select Case IndexModelo

Case 0, 2 : Me.lblPrecUnit.Text = "149.00"

Case 1, 3 : Me.lblPrecUnit.Text = "179.00"

End Select

End Select

Case 10

Select Case IndexMarca

Case 0

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "48.00"

Case 1 : Me.lblPrecUnit.Text = "69.00"

Case 2 : Me.lblPrecUnit.Text = "84.00"

Case 3 : Me.lblPrecUnit.Text = "56.00"

Case 4 : Me.lblPrecUnit.Text = "76.00"

Page 44: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

42

Case 5 : Me.lblPrecUnit.Text = "99.00"

End Select

Case 1

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "47.00"

Case 1 : Me.lblPrecUnit.Text = "67.00"

Case 2 : Me.lblPrecUnit.Text = "80.00"

Case 3 : Me.lblPrecUnit.Text = "59.00"

Case 4 : Me.lblPrecUnit.Text = "81.00"

Case 5 : Me.lblPrecUnit.Text = "110.00"

End Select

Case 2

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "49.00"

Case 1 : Me.lblPrecUnit.Text = "69.00"

Case 2 : Me.lblPrecUnit.Text = "87.00"

Case 3 : Me.lblPrecUnit.Text = "59.00"

Case 4 : Me.lblPrecUnit.Text = "80.00"

Case 5 : Me.lblPrecUnit.Text = "115.00"

End Select

End Select

Case 11

Select Case IndexMarca

Case 0

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "130.00"

Case 1 : Me.lblPrecUnit.Text = "140.00"

End Select

Case 1

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "136.00"

Case 1 : Me.lblPrecUnit.Text = "159.00"

End Select

Case 2

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "124.00"

Case 1 : Me.lblPrecUnit.Text = "179.00"

End Select

Case 3

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "146.00"

Case 1 : Me.lblPrecUnit.Text = "184.00"

End Select

Case 4

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "155.00"

Case 1 : Me.lblPrecUnit.Text = "210.00"

End Select

End Select

Case 12

Select Case IndexMarca

Case 0

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "11.00"

Case 1 : Me.lblPrecUnit.Text = "15.00"

End Select

Page 45: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

43

Case 1

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "8.00"

Case 1 : Me.lblPrecUnit.Text = "16.00"

End Select

Case 2

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "13.00"

Case 1 : Me.lblPrecUnit.Text = "19.00"

End Select

End Select

Case 13

Select Case IndexMarca

Case 0

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "789.00"

Case 1 : Me.lblPrecUnit.Text = "999.00"

End Select

Case 1

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "814.00"

Case 1 : Me.lblPrecUnit.Text = "1025.00"

End Select

End Select

Case 14

Select Case IndexMarca

Case 0

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "18.00"

Case 1 : Me.lblPrecUnit.Text = "27.00"

End Select

Case 1

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "17.00"

Case 1 : Me.lblPrecUnit.Text = "25.00"

End Select

Case 2

Select Case IndexModelo

Case 0 : Me.lblPrecUnit.Text = "18.00"

Case 1 : Me.lblPrecUnit.Text = "29.00"

End Select

End Select

End Select

Me.lblTotal.Text = Format(Val(Me.lblPrecUnit.Text) * Me.nudCantidad.Value,

"#####0.00")

btnAdicionar (Evento Click)

Dim Descripcion As String

If Me.cboArticulo.Text <> "" AndAlso Me.cboMarca.Text <> "" Then

Descripcion = Me.cboArticulo.Text + " \ " + Me.cboMarca.Text

If Añadir = False Then

If Me.cboModelo.Text <> "" Then

Descripcion = Descripcion + " \ " + Me.cboModelo.Text

Else

Page 46: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

44

MsgBox("Escoja El Modelo del Articulo", MsgBoxStyle.Information,

"Error")

Exit Sub

End If

End If

Me.lstCantidad.Items.Add(CStr(Me.nudCantidad.Value))

Me.lstDescripcion.Items.Add(Descripcion)

Me.lstPrecUnit.Items.Add(Me.lblPrecUnit.Text)

Me.lstTotal.Items.Add(Me.lblTotal.Text)

Call SumarTotales()

Else

MsgBox("Escoja El Articulo y/o Marca a Añadir al Carrito",

MsgBoxStyle.Information, "Error")

End If

lstCantidad (Evento SelectedIndexChanged)

Dim Index As Integer

Index = Me.lstCantidad.SelectedIndex

Me.lstDescripcion.SelectedIndex = Index

Me.lstPrecUnit.SelectedIndex = Index

Me.lstTotal.SelectedIndex = Index

Me.btnEliminar.Enabled = True

lstDescripcion (Evento SelectedIndexChanged)

Dim Index As Integer

Index = Me.lstDescripcion.SelectedIndex

Me.lstCantidad.SelectedIndex = Index

Me.lstPrecUnit.SelectedIndex = Index

Me.lstTotal.SelectedIndex = Index

Me.btnEliminar.Enabled = True

lstPrecUnit (Evento SelectedIndexChanged)

Dim Index As Integer

Index = Me.lstPrecUnit.SelectedIndex

Me.lstDescripcion.SelectedIndex = Index

Me.lstCantidad.SelectedIndex = Index

Me.lstTotal.SelectedIndex = Index

Me.btnEliminar.Enabled = True

lstTotal (Evento SelectedIndexChanged)

Dim Index As Integer

Index = Me.lstTotal.SelectedIndex

Me.lstDescripcion.SelectedIndex = Index

Me.lstPrecUnit.SelectedIndex = Index

Me.lstCantidad.SelectedIndex = Index

Me.btnEliminar.Enabled = True

Page 47: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

45

btnCancelar (Evento Click)

Dim Index As Integer

Index = Me.lstCantidad.Items.Count - 1

Me.lstCantidad.Items.RemoveAt(Index)

Me.lstDescripcion.Items.RemoveAt(Index)

Me.lstPrecUnit.Items.RemoveAt(Index)

Me.lstTotal.Items.RemoveAt(Index)

Call SumarTotales()

btnEliminar (Evento Click)

Dim Index As Integer

Index = Me.lstCantidad.SelectedIndex

Me.lstCantidad.Items.RemoveAt(Index)

Me.lstDescripcion.Items.RemoveAt(Index)

Me.lstPrecUnit.Items.RemoveAt(Index)

Me.lstTotal.Items.RemoveAt(Index)

Me.btnEliminar.Enabled = False

Call SumarTotales()

btnNuevo (Evento Click)

Call Limpiar()

btnSalir (Evento Click)

Me.Close()

Como se abran dado cuenta la codificación de esta aplicación en muy

tediosa, pero aquí se encuentra casi todo los que hemos avanzado hasta ahora

Page 48: Entrega 8   arreglos - controles - gráficos

Lenguaje de Programación � Capitulo XII

Programando con Visual Basic 2005

Joel Martin Chuco Marrufo

46

Bueno señores con esto acaba la Octava entrega de este manual, quisiera

pedirles una consulta, que es sobre la entrega décima, tengo una idea y quiero

consultarlo con ustedes, se que hasta ahora no hemos tocado el tema de base de

datos, así que les parece, que si para la décima entrega, elaboramos un programa

casi completo, mejor dicho, un programa con formularios de presentación, de

ingreso de usuarios, de procesos, consultas, reportes, ayuda, y casi todo lo que

tiene una programa de verdad, desde el diseño y modelamiento de la base de

datos, este programa, se trataría de ya se de una empresa de fabricación de

mermeladas o de un centro comercial de ventas de GLP (Gas Licuado de Petróleo),

ya que cuento con información de estos dos, aunque acepto sugerencias, y por

supuesto que cada sugerencia de un programa, tiene que se con su información, en

otras palabras aquella persona que propone que hagamos otro tipo de programa,

nos tendrá que brindar toda la información necesaria, eso quiere decir, su

funcionamiento, los artículos, el manejo de ellos, los tipos de consultas, reportes,

como esta estructurado su información, bueno espero sus comentarios en la pagina

web www.lawebdelprogramador.com en la sección del manual, en caso que no

deseen que sea de esta forma la décima entrega, lo haremos como hasta ahora,

por temas, y si lo desean de la forma que propongo lo realizaremos paso por paso,

mejor dicho las entregas lo haremos por partes, para que lo vayan avanzando como

yo lo avanzo. Aquí les dejo o mejor dicho les envío los programas elaborados hasta

ahora, las imágenes que utilizo en esta entrega y en la próxima entrega

realizaremos lo siguiente:

Los demás controles (WebBrowser, ListView, TreeView, etc.)

Bueno conmigo será hasta la próxima entrega.

Joel Martin Chuco Marrufo

[email protected]

Donaciones a la cuenta de Ahorros del Banco de Interbank del Perú

Cuenta en Soles:

067-3008573552

Cuenta en Dólares:

067-3008573560

www.interbank.com.pe

Este Manual Solo lo Puedes Descargar por la Página Oficial.

www.lawebdelprogramador.com

Lima, 06 de Junio de 2006


Recommended