You are on page 1of 48

Capitulo XII

INDICE

CAPITULO XII

Arreglos Ejercicio 84 Ejercicio 85 Ejercicio 86 GDI Los Grficos GDI Ejercicio 87 Control PictureBox Ejercicio 88 Control ListBox y ComboBox Ejemplo Ejercicio 89 Ejercicio 90 Despedida 46 25 23 19 19 17 15 12 11 11 06 02 01

01

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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 informacin, 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 aplicacin nos permite ingresar un nmero del 1 al 7 y visualizar el nombre del da de la semana.

Para esta aplicacin 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

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

frmAplicacion84 (Evento Load)

Dias(0) Dias(1) Dias(2) Dias(3) Dias(4) Dias(5) Dias(6)

= = = = = = =

"Lunes" "Martes" "Miercoles" "Jueves" "Viernes" "Sbado" "Domingo"

btnOk (Evento Click)

Dim N As Integer N = Val(Me.txtNumero.Text) If N >= 1 And N <= 7 Then Me.lblNombDia.Text = "El nmero ingresado representa el da " + CStr(Dias(N - 1)) Else MsgBox("Solo nmeros del 1 al 7", MsgBoxStyle.Information, "Por Favor") Me.txtNumero.Text = "" Me.txtNumero.Focus() End If

btnSalir (Evento Click)

Me.Close()

85. Esta aplicacin 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.

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Para este caso los controles se llamaran:

Los Buttons se llamaran de acuerdo al texto que llevan, anteponindose su prefijo, ejemplo: el botn 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 txtArray10 txtArray20 txtArray30 txtArray31 txtArray32 txtArray33 txtArray21 txtArray22 txtArray23 txtArray11 txtArray12 txtArray13

txtArray01

txtArray02

txtArray03

Una vez diseada 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 almacenar el array con valores del 1 al 80.

LlenarArray,

que

nos

permitir

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 Me.txtArray01.Text Me.txtArray02.Text Me.txtArray03.Text Me.txtArray10.Text Me.txtArray11.Text Me.txtArray12.Text Me.txtArray13.Text Me.txtArray20.Text

= = = = = = = = =

Arreglo(0, Arreglo(0, Arreglo(0, Arreglo(0, Arreglo(1, Arreglo(1, Arreglo(1, Arreglo(1, Arreglo(2,

0) 1) 2) 3) 0) 1) 2) 3) 0)

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


Me.txtArray21.Text Me.txtArray22.Text Me.txtArray23.Text Me.txtArray30.Text Me.txtArray31.Text Me.txtArray32.Text Me.txtArray33.Text End Sub = = = = = = = Arreglo(2, Arreglo(2, Arreglo(2, Arreglo(3, Arreglo(3, Arreglo(3, Arreglo(3, 1) 2) 3) 0) 1) 2) 3)

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 mtodo

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


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 estarn diciendo, por que no toca el tema de matriz de matrices?, wueno no lo hago para que no se confundan, adems la programacin a la que yo estoy haciendo es a la programacin comercial, creo que es en donde hay mas trabajo que hacer no?, y adems para que complicarnos la vida, si tenemos diseadores de base de datos, como lo es el MSACCESS o el SQLSERVER, con eso diseadores, no necesitaremos mucho de arreglos, pero siempre es bueno aprender aunque sea los mas principales.

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

86. Esta aplicacin nos permite manejar elementos de un Array de 4 x 4. Estos elementos son valores numricos 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 segn el cuadro.

txtArreglo00 txtArreglo10 txtArreglo20 txtArreglo30 lblD2 lblC1 lblC2 lblC3 lblC4 lblD1 txtArreglo31 txtArreglo32 txtArreglo33 lblF4 txtArreglo21 txtArreglo22 txtArreglo23 lblF3 txtArreglo11 txtArreglo12 txtArreglo13 lblF2

txtArreglo01

txtArreglo02

txtArreglo03

lblF1

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Para el nombre de los botones ser el siguiente:

Text

Name

Limpiar el Array Limpiar los Resultados Suma las Columnas Suma las Filas Llenar el Array Columna 1 Columna 2 Columna 3 Columna 4 Fila 1 Fila 2 Fila 3 Fila 4 Diagonal N 1 [ \ ] Diagonal N 2 [ / ]

btnLimpArray btnLimpResult btnSumaCol btnSumaFila btnLlenarArray btnCol1 btnCol2 btnCol3 btnCol4 btnFila1 btnFila2 btnFila3 btnFila4 btnDiagonal1 btnDiagonal2

Una vez diseada 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 almacenar el array con valores del 1 al 100.

LlenarArray,

que

nos

permitir

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

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Crearemos un procedimiento llamado LlenarControles, que nos permitir almacenar los valores del array en las cajas de texto.

Sub LlenarControles() 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 End Sub

= = = = = = = = = = = = = = = =

Arreglo(0, Arreglo(0, Arreglo(0, Arreglo(0, Arreglo(1, Arreglo(1, Arreglo(1, Arreglo(1, Arreglo(2, Arreglo(2, Arreglo(2, Arreglo(2, Arreglo(3, Arreglo(3, Arreglo(3, Arreglo(3,

0) 1) 2) 3) 0) 1) 2) 3) 0) 1) 2) 3) 0) 1) 2) 3)

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()

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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)

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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)

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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 Grficos GDI

El CLR (Common Language Runtime) usa una implementacin avanzada de la interfaz de diseo de grfico de Windows, denominada GDI+, que permite crear grficos, dibujar texto y manipular imgenes grficas como si fueran objetos. En otras palabras, el GDI nos permite crear Textos y grficos (Lneas, 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.

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

87. Esta aplicacin nos permite visualizar texto, figuras y una pequea animacin creados mediante GDI.

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

Text

Name

Ver Texto Ver Cuadrado Ver Circulo Ver Poligono Ver Animacion Salir

btnTexto btnCuadrado btnCirculo btnPoligono btnAnimacion btnSalir

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Una vez diseada 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

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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()

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

CONTROL PICTUREBOX

Como lo he mencionado antes, este control PictureBox nos permite mostrar imgenes ya seas *.bmp, *.jpg, *.gif, *.png, etc. Las propiedades mas usadas de este control son:

BackColor; la mayora 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, tamaa 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 ejecucin del programa.

Como ya saben, en este control tambin podemos mostrar imgenes en tiempo de ejecucin, hay dos formas de hacerlo, ya sea mediante un array de imgenes o mediante la ruta de la imagen, as que veremos las dos formas.

Mediante la direccin del archivo


PictureBox.Image = Image.FromFile(Direccion)

Mediante array de imagines (para hacerlo de esta forma, primero tendrn que ingresar las imgenes al Resources, por ejemplo: nos ubicamos en la propiedad image, como se muestra en la figura.

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Una vez ubicado en la propiedad image, daremos clic en el botn y se abrir la siguiente ventana, donde daremos clic en Import e importaremos (aadiremos) las imgenes que vamos a usar, tal como se muestra la imagen.

Una vez aadidas las imgenes daremos clic en Ok de la ventana y despus haremos el siguiente cdigo:

REM REM REM REM

Declaramos un array de una dimensin y de un solo item llamado Luna de Tipo Image y luego le asignaremos un valor al array de imgenes, en otras palabras, en el ndice 0 del array Luna, le asignaremos la imagen de MOON01 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 pequeo ejemplo sobre un array de imgenes y del control PictureBox, para que lo entiendan mejor.

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

88. Esta aplicacin nos permite hallar el rea de una circunferencia, mostrando una pequea animacin.

Como vemos aqu aadiremos 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 aplicacin, un Timer llamado tmrAnimacin, que nos permitir controlar el tiempo que vamos a mostrar las imgenes, y un PictureBox llamado picLunas, que nos mostrar las imgenes.

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

Joel Martin Chuco Marrufo 17

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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 Numrica" End If

btnSalir (Evento Click)

Dim Resp As MsgBoxResult Resp = MsgBox("Desea Terminar la Aplicacin?", MsgBoxStyle.YesNo, "Pregunta") If Resp = MsgBoxResult.Yes Then Me.Close() End If

Fcil no?, como lo ven no es nada del otro mundo, como les vuelvo a repetir, no estoy tocando a la profundidad las propiedades, mtodos de cada control, ya que solo este curso se dedica a realizar programas comerciales.

Joel Martin Chuco Marrufo 18

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

CONTROL LISTBOX Y COMBOBOX

Estos dos controles (ListBox y ComboBox) se parecen mucho, tanto en sus propiedades como en eventos, ya sea aadiendo elementos, eliminndolos, obteniendo el elementos seleccionado, etc. Hay dos formas de ingresar los elementos en estos controles, ya sea mediante un editor (en modo de diseo), o mediante cdigo (en tiempo de ejecucin), para mi y creo que para la mayora de los programadores, la mejor forma de aadir los elementos es mediante cdigo, as que veremos como ingresar, eliminar, ordenar los elementos a un ListBox, mediante un ejemplo, no se preocupen que para los combo box, tambin son iguales.

Ejemplo

Esta aplicacin nos permite ingresar un numero entero cualquiera a un ListBox, y despus podemos ordenarlos ascendentemente o descendentemente, o eliminar los elementos seleccionados, tambin podremos hallar la media de los elementos del control, teniendo en cuenta que si el nmero de elementos de la lista es impar, la media es igual al nmero colocado en la posicin 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.

Joel Martin Chuco Marrufo 19

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Los controles tendrn su nombre respectivo, con referencia a su funcin, el tectbox se llama txtNumIng, el botn aadir se llamara btnAadir, el botn cerrar se llamara btnCerrar, el botn ordenar se llamara btnOrdenar, el botn eliminar se llamara btnEliminar, el botn ejecutar clculo se llamara btnEjecutar, la lista de nmeros (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 nmeros se llamara lblCalculo.

Cuando seleccionaremos un elemento o mas de uno, se activara el botn 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.btnAadir.Enabled = True Else Me.btnAadir.Enabled = False End If

btnAadior (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

Joel Martin Chuco Marrufo 20

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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 'Mtodo de Ordenacin 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

Joel Martin Chuco Marrufo 21

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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 invocacin al miembro de tems del control, por ejemplo, les dejo algunas instrucciones que mas se utilizan en los dos controles.

Para aadir 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()

Joel Martin Chuco Marrufo 22

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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 aplicacin 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 actualizndose cada segundo, mediante un control Timer.

Joel Martin Chuco Marrufo 23

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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 Aplicacin?", 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()

Joel Martin Chuco Marrufo 24

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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, crea desactivado, as que se tiene que activar el control para poder usarlo, esto hace mediante la propiedad Enabled, en la cual tiene que estar en True, y intervalo en que el control se actualizara, por ejemplo, el intervalo de 100 equivalente a un segundo.

se se el es

90. Esta aplicacin 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 aplicacin esta basada en arreglos y datos almacenados en el programa, con el fin de darnos cuenta que tan importante es tener un diseador de base de datos, ya que la aplicacin sin base de datos que maneje informacin se hara engorrosa y los datos no estaran tan seguros, veamos un ejemplo de este tipo de aplicacin sin una base de datos, y como seria su programacin, 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, tendrn los siguientes nombres, de acuerdo a su etiqueta de su costado; lblMainboard, lblProcesador, lblDiscoDuro, lblMemoriaRAM, lblTarjVideo, lblTarjRed, lblCase.

Joel Martin Chuco Marrufo 25

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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

GroupBox1 (Evento Click)

Me.Close()

frmAplicacion90

Joel Martin Chuco Marrufo 26

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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 Articulo Marca Modelo Precio Unitario Total Adicionar Cancelar Descripcin Imagen Lista de Cantidad Lista de Descripcin Lista de Precio Unitario Lista de Total Subtotal IGV Total Nueva Pro forma Eliminar Articulo Salir

nudCantidad cboArticuo cboMarca cboModelo lblPrecUnit lblTotal btnAdicionar btnCancelar btnDescripcion picArticulo lstCantidad lstDescripcion lstPrecUnit lstTotal lblSubTotalProf lblIGV lblTotalProf btnNuevo btnEliminar btnSalir

QUE ES LO QUE SE PIDE?

Para este caso se pide que esta aplicacin 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 descripcin de ella nada mas, tambin podremos aadir los artculos seleccionados al carrito, y tambin 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 ms perfecto, tambin le pueden agregar un botn de impresin donde se imprimir el formulario en pantalla.

Una vez ya tenido el diseos del formulario listo y sus descripciones que debe tener, procederemos a la larga, pero larga, larga codificacin.

Joel Martin Chuco Marrufo 27

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Declaramos variables a Nivel del Formulario


Dim Dim Dim Dim Dim Dim Dim Dim Marca(14) As String ModeloImpresora(14), ModeloPC(11), ModeloCD(1), ModeloDVD(1) As String ModeloUSB(3), ModeloModem(1), ModeloMonitor(7), ModeloMP3(5) As String ModeloScaner(9), ModeloTeclado(1), ModeloVideoCamara(1), ModeloWebCam(1) As String DescripcionPC(83) As String Imagenes(15) As Image IndexArticulo, IndexMarca, IndexModelo As Integer Aadir As Boolean = True

Funcin Limpiar esta funcin 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

Funcin MarcaArticulo esta funcin almacenara en el array Marca, las marcas respectivas de los artculos, vlgala 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

Joel Martin Chuco Marrufo 28

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Funcin ModeloPCs esta funcin 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

Funcin ModeloImpresoras esta funcin 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

Funcin ModeloCDs esta funcin almacena los distintos modelos de Lectoras

Sub ModeloCDs() ModeloCD(0) = "52x24x52 Negro" ModeloCD(1) = "52x24x52 Blanco" End Sub

Funcin ModeloDVDs Quemadores

esta

funcin

almacena

los

distintos

modelos

de

Sub ModeloDVDs() ModeloDVD(0) = "16x Negro" ModeloDVD(1) = "16x Blanco" End Sub

Joel Martin Chuco Marrufo 29

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Funcin ModeloUSBs esta funcin almacena los distintos modelos de memorias USBs

Sub ModeloUSBs() ModeloUSB(0) = ModeloUSB(1) = ModeloUSB(2) = ModeloUSB(3) = End Sub

"64 MB" "128 MB" "256 MB" "512 MB"

Funcin ModeloModems esta funcin almacena los distintos modelos de Modems

Sub ModeloModems() ModeloModem(0) = "Z135 ADSL" ModeloModem(1) = "Z135 DSL" End Sub

Funcin ModeloMonitores esta funcin almacena los distintos modelos de Monitor

Sub ModeloMonitores() ModeloMonitor(0) = "15' ModeloMonitor(1) = "17' ModeloMonitor(2) = "15' ModeloMonitor(3) = "17' ModeloMonitor(4) = "15' ModeloMonitor(5) = "17' ModeloMonitor(6) = "15' ModeloMonitor(7) = "17' End Sub

591S Negro" 793S Negro" 591S Blanco" 793S Blanco" T530SS FLAT Negro" L1750 LCD Negro" T530SS FLAT Blanco" L1750 LCD Blanco"

Funcin ModeloMP3s reproductores MP3s

esta

funcin

almacena

los

distintos

modelos

de

Sub ModeloMP3s() ModeloMP3(0) = ModeloMP3(1) = ModeloMP3(2) = ModeloMP3(3) = ModeloMP3(4) = ModeloMP3(5) = End Sub

"128 "256 "512 "128 "256 "512

MB" MB" MB" MB / Radio FM" MB / Radio FM" MB / Radio FM"

Joel Martin Chuco Marrufo 30

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Funcin ModeloScaners esta funcin almacena los distintos modelos de Scaner

Sub ModeloScaners() ModeloScaner(0) = ModeloScaner(1) = ModeloScaner(2) = ModeloScaner(3) = ModeloScaner(4) = ModeloScaner(5) = ModeloScaner(6) = ModeloScaner(7) = ModeloScaner(8) = ModeloScaner(9) = End Sub

"2400 USB 2400x2400 DPI" "4070 USB 2400x2400 DPI" "LIDE 25 USB" "LIDE 32 USB" "1800 USB 2400x2400 DPI" "2500 USB 2400x2400 DPI" "15T USB 2400x2400 DPI" "18T USB 2400x2400 DPI" "450RT USB 2400x2400 DPI" "500RT USB 2400x2400 DPI"

Funcin ModeloTeclados esta funcin almacena los distintos modelos de Teclado

Sub ModeloTeclados() ModeloTeclado(0) = "Office Set" ModeloTeclado(1) = "Multimedia" End Sub

Funcin ModeloVideoCamras esta funcin almacena los distintos modelos de Video Cmaras

Sub ModeloVideoCamaras() ModeloVideoCamara(0) = "Zoom 5x, Pantalla LCD 2.5'" ModeloVideoCamara(1) = "Zoom 4x, Pantalla LCD 2.5'" End Sub

Funcin ModeloWebCams esta funcin almacena los distintos modelos de Web Cam

Sub ModeloWebCams() ModeloWebCam(0) = "600x480 Pxls." ModeloWebCam(1) = "800x600 Pxls." End Sub

Funcin DescripcionesPC esta funcin 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"

Joel Martin Chuco Marrufo 31

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


DescripcionPC(10) DescripcionPC(11) DescripcionPC(12) DescripcionPC(13) DescripcionPC(14) DescripcionPC(15) DescripcionPC(16) DescripcionPC(17) DescripcionPC(18) DescripcionPC(19) DescripcionPC(20) DescripcionPC(21) DescripcionPC(22) DescripcionPC(23) DescripcionPC(24) DescripcionPC(25) DescripcionPC(26) DescripcionPC(27) DescripcionPC(28) DescripcionPC(29) DescripcionPC(30) DescripcionPC(31) DescripcionPC(32) DescripcionPC(33) DescripcionPC(34) DescripcionPC(35) DescripcionPC(36) DescripcionPC(37) DescripcionPC(38) DescripcionPC(39) DescripcionPC(40) DescripcionPC(41) DescripcionPC(42) DescripcionPC(43) DescripcionPC(44) DescripcionPC(45) DescripcionPC(46) DescripcionPC(47) DescripcionPC(48) DescripcionPC(49) DescripcionPC(50) DescripcionPC(51) DescripcionPC(52) DescripcionPC(53) DescripcionPC(54) DescripcionPC(55) DescripcionPC(56) DescripcionPC(57) DescripcionPC(58) DescripcionPC(59) DescripcionPC(60) DescripcionPC(61) DescripcionPC(62) DescripcionPC(63) DescripcionPC(64) DescripcionPC(65) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = "SPECTEK 512MB PC 800" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "D-LINK DFE - 530TX 10/100" "PENTIUM IV 500W PRESCOTT" "INTEL 865 PERLL/ Tarj. Sonido Integrado" "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA" "SAMSUNG 40GB 7200 RPM IDE" "SPECTEK 256MB PC 533" "ATI 4X 64MB DDR RADEON 7000 TV/OUT" "D-LINK DFE - 530TX 10/100" "PENTIUM IV 400W PRESCOTT" "PC CHIPS P25G B800/ Tarj. Sonido Integrado" "INTEL PIV 2.4 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 533" "Tarj. Video 64MB Incorporado" "Tarj. Red Encore 10/100 Incorporado" "PENTIUM IV 500W PRESCOTT" "PC CHIPS P25G B800/ Tarj. Sonido Integrado" "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 533" "Tarj. Video 64MB Incorporado" "Tarj. Red Encore 10/100 Incorporado" "PENTIUM IV 500W PRESCOTT" "PC CHIPS P25 B800/ Tarj. Sonido Integrado" "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 256MB PC 533" "Tarj. Video 64MB Incorporado" "Tarj. Red Encore 10/100 Incorporado" "PENTIUM IV 400W PRESCOTT" "SYNTAX TXTPRO/ Tarj. Sonido Integrado" "INTEL PIV 2.4 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 533" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 500W PRESCOTT" "SYNTAX TXTPRO/ Tarj. Sonido Integrado" "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 800" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 500W PRESCOTT" "SYNTAX TXTPRO/ Tarj. Sonido Integrado" "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA" "SAMSUNG 40GB 7200 RPM IDE" "SPECTEK 256MB PC 533" "ATI 4X 64MB DDR RADEON 7000 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 400W PRESCOTT" "ASROCK VIA M800/ Tarj. Sonido Integrado" "INTEL PIV 2.4 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE"

Joel Martin Chuco Marrufo 32

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


DescripcionPC(66) DescripcionPC(67) DescripcionPC(68) DescripcionPC(69) DescripcionPC(70) DescripcionPC(71) DescripcionPC(72) DescripcionPC(73) DescripcionPC(74) DescripcionPC(75) DescripcionPC(76) DescripcionPC(77) DescripcionPC(78) DescripcionPC(79) DescripcionPC(80) DescripcionPC(81) DescripcionPC(82) DescripcionPC(83) End Sub = = = = = = = = = = = = = = = = = = "SPECTEK 512MB PC 533" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 500W PRESCOTT" "ASROCK VIA M800/ Tarj. Sonido Integrado" "INTEL PIV 2.8 GHZ 512KB, 533MHZ, PGA" "SAMSUNG 80GB 7200 RPM IDE" "SPECTEK 512MB PC 800" "ATI 8X 128MB DDR RADEON 9250 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 500W PRESCOTT" "ASROCK VIA M800/ Tarj. Sonido Integrado" "INTEL CEL 2.53 GHZ 256KB, 533MHZ, LGA" "SAMSUNG 40GB 7200 RPM IDE" "SPECTEK 256MB PC 533" "ATI 4X 64MB DDR RADEON 7000 TV/OUT" "3-COM 10/100 / Integrado" "PENTIUM IV 400W PRESCOTT"

Funcin LlenarMarcas esta funcin 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

Joel Martin Chuco Marrufo 33

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Funcin LlenarModelos esta funcin 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

Joel Martin Chuco Marrufo 34

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


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

Joel Martin Chuco Marrufo 35

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


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

Funcin SumarTotales esta funcin halla el total a pagar de los artculos aadidos (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

Joel Martin Chuco Marrufo 36

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

frmAplicacion90 (Evento FormClosing)

If MsgBox("Desea Salir de la Aplicacin?", 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

Joel Martin Chuco Marrufo 37

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


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

Joel Martin Chuco Marrufo 38

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


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 Aadir = 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 Aadir = 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 Aadir = True Case Else Me.lblPrecUnit.Text = "0.00" Aadir = 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

Joel Martin Chuco Marrufo 39

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


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

Joel Martin Chuco Marrufo 40

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


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"

Joel Martin Chuco Marrufo 41

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


Case 5 : Me.lblPrecUnit.Text End Select Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text Case 2 : Me.lblPrecUnit.Text Case 3 : Me.lblPrecUnit.Text Case 4 : Me.lblPrecUnit.Text Case 5 : Me.lblPrecUnit.Text End Select Case 2 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text Case 2 : Me.lblPrecUnit.Text Case 3 : Me.lblPrecUnit.Text Case 4 : Me.lblPrecUnit.Text Case 5 : Me.lblPrecUnit.Text End Select End Select Case 11 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select Case 1 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select Case 2 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select Case 3 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select Case 4 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select End Select Case 12 Select Case IndexMarca Case 0 Select Case IndexModelo Case 0 : Me.lblPrecUnit.Text Case 1 : Me.lblPrecUnit.Text End Select = "99.00"

= = = = = =

"47.00" "67.00" "80.00" "59.00" "81.00" "110.00"

= = = = = =

"49.00" "69.00" "87.00" "59.00" "80.00" "115.00"

= "130.00" = "140.00"

= "136.00" = "159.00"

= "124.00" = "179.00"

= "146.00" = "184.00"

= "155.00" = "210.00"

= "11.00" = "15.00"

Joel Martin Chuco Marrufo 42

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


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 Aadir = False Then If Me.cboModelo.Text <> "" Then Descripcion = Descripcion + " \ " + Me.cboModelo.Text Else

Joel Martin Chuco Marrufo 43

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005


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 Aadir 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

Joel Martin Chuco Marrufo 44

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

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 codificacin de esta aplicacin en muy tediosa, pero aqu se encuentra casi todo los que hemos avanzado hasta ahora

Joel Martin Chuco Marrufo 45

Lenguaje de Programacin Capitulo XII

Programando con Visual Basic 2005

Bueno seores con esto acaba la Octava entrega de este manual, quisiera pedirles una consulta, que es sobre la entrega dcima, 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 dcima entrega, elaboramos un programa casi completo, mejor dicho, un programa con formularios de presentacin, de ingreso de usuarios, de procesos, consultas, reportes, ayuda, y casi todo lo que tiene una programa de verdad, desde el diseo y modelamiento de la base de datos, este programa, se tratara de ya se de una empresa de fabricacin de mermeladas o de un centro comercial de ventas de GLP (Gas Licuado de Petrleo), ya que cuento con informacin de estos dos, aunque acepto sugerencias, y por supuesto que cada sugerencia de un programa, tiene que se con su informacin, en otras palabras aquella persona que propone que hagamos otro tipo de programa, nos tendr que brindar toda la informacin necesaria, eso quiere decir, su funcionamiento, los artculos, el manejo de ellos, los tipos de consultas, reportes, como esta estructurado su informacin, bueno espero sus comentarios en la pagina web www.lawebdelprogramador.com en la seccin del manual, en caso que no deseen que sea de esta forma la dcima 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 envo los programas elaborados hasta ahora, las imgenes que utilizo en esta entrega y en la prxima entrega realizaremos lo siguiente: Los dems controles (WebBrowser, ListView, TreeView, etc.)

Bueno conmigo ser hasta la prxima entrega.

Joel Martin Chuco Marrufo Visual_Basic_Net_2005@hotmail.com

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


Cuenta en Soles:

067-3008573552 Cuenta en Dlares:

067-3008573560

www.interbank.com.pe

Este Manual Solo lo Puedes Descargar por la Pgina Oficial.

www.lawebdelprogramador.com

Lima, 06 de Junio de 2006

Joel Martin Chuco Marrufo 46

You might also like