SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Capitulo XII
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
Lenguaje de Programación – 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 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




                            Joel Martin Chuco Marrufo
                                         1
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005

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.




                                 Joel Martin Chuco Marrufo
                                              2
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005


       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)


                              Joel Martin Chuco Marrufo
                                           3
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005
    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


                               Joel Martin Chuco Marrufo
                                            4
Lenguaje de Programación – 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 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.




                           Joel Martin Chuco Marrufo
                                        5
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005


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




                            Joel Martin Chuco Marrufo
                                         6
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005


      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




                           Joel Martin Chuco Marrufo
                                        7
Lenguaje de Programación – 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      =   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()




                              Joel Martin Chuco Marrufo
                                           8
Lenguaje de Programación – 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 Programación – 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 Programación – 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 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.




                           Joel Martin Chuco Marrufo
                                       11
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005


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




                           Joel Martin Chuco Marrufo
                                       12
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005

      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



                             Joel Martin Chuco Marrufo
                                         13
Lenguaje de Programación – 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 Programación – Capitulo XII

Programando con Visual Basic 2005



                          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.




                            Joel Martin Chuco Marrufo
                                        15
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005


        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.




                           Joel Martin Chuco Marrufo
                                       16
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005



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




                            Joel Martin Chuco Marrufo
                                        17
Lenguaje de Programación – 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 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.




                           Joel Martin Chuco Marrufo
                                       18
Lenguaje de Programación – 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 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.




                            Joel Martin Chuco Marrufo
                                        19
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005


       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




                            Joel Martin Chuco Marrufo
                                        20
Lenguaje de Programación – 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
     '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




                             Joel Martin Chuco Marrufo
                                         21
Lenguaje de Programación – 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 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()




                             Joel Martin Chuco Marrufo
                                         22
Lenguaje de Programación – 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 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.




                            Joel Martin Chuco Marrufo
                                        23
Lenguaje de Programación – 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 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()




                             Joel Martin Chuco Marrufo
                                         24
Lenguaje de Programación – 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,     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.


                            Joel Martin Chuco Marrufo
                                        25
Lenguaje de Programación – 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 Programación – 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                   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.




                           Joel Martin Chuco Marrufo
                                       27
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005


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




                               Joel Martin Chuco Marrufo
                                           28
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005

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


                          Joel Martin Chuco Marrufo
                                      29
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005

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




                            Joel Martin Chuco Marrufo
                                        30
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005

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"


                          Joel Martin Chuco Marrufo
                                      31
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005
    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"


                             Joel Martin Chuco Marrufo
                                         32
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005
    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




                             Joel Martin Chuco Marrufo
                                         33
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005

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


                         Joel Martin Chuco Marrufo
                                     34
Lenguaje de Programación – 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 Programación – 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


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



                           Joel Martin Chuco Marrufo
                                       36
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005

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


                          Joel Martin Chuco Marrufo
                                      37
Lenguaje de Programación – 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 Programación – 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
          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


                         Joel Martin Chuco Marrufo
                                     39
Lenguaje de Programación – 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 Programación – 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 Programación – Capitulo XII

Programando con Visual Basic 2005
                 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


                          Joel Martin Chuco Marrufo
                                      42
Lenguaje de Programación – 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 Añadir = False Then
           If Me.cboModelo.Text <> "" Then
              Descripcion = Descripcion + "  " + Me.cboModelo.Text
           Else


                          Joel Martin Chuco Marrufo
                                      43
Lenguaje de Programación – 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 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




                           Joel Martin Chuco Marrufo
                                       44
Lenguaje de Programación – 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 codificación de esta aplicación en muy
tediosa, pero aquí se encuentra casi todo los que hemos avanzado hasta ahora




                             Joel Martin Chuco Marrufo
                                         45
Lenguaje de Programación – Capitulo XII

Programando con Visual Basic 2005


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




                            Joel Martin Chuco Marrufo
                                        46

Mais conteúdo relacionado

Mais procurados (20)

Recursividad
RecursividadRecursividad
Recursividad
 
Algoritmos divide y vencerás
Algoritmos divide y vencerásAlgoritmos divide y vencerás
Algoritmos divide y vencerás
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
Mysql
MysqlMysql
Mysql
 
Capitulo 3-primera-parte
Capitulo 3-primera-parteCapitulo 3-primera-parte
Capitulo 3-primera-parte
 
Divide y Vencerás
Divide y VencerásDivide y Vencerás
Divide y Vencerás
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestro
 
Cesar lenguaje c_
Cesar lenguaje c_Cesar lenguaje c_
Cesar lenguaje c_
 
Recursividad
RecursividadRecursividad
Recursividad
 
Slideshare nelson rodriguez
Slideshare nelson rodriguezSlideshare nelson rodriguez
Slideshare nelson rodriguez
 
Educ trabajo funciones en excel [×bern@chea m×™]
Educ trabajo  funciones en excel [×bern@chea m×™]Educ trabajo  funciones en excel [×bern@chea m×™]
Educ trabajo funciones en excel [×bern@chea m×™]
 
Recursividad
RecursividadRecursividad
Recursividad
 
Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzada
 
Codigo ejercicios
Codigo ejerciciosCodigo ejercicios
Codigo ejercicios
 
Metodologia de la programacion recursividad
Metodologia de la programacion   recursividadMetodologia de la programacion   recursividad
Metodologia de la programacion recursividad
 
Estadística con Lenguaje R: Sesión 2
Estadística con Lenguaje R: Sesión 2Estadística con Lenguaje R: Sesión 2
Estadística con Lenguaje R: Sesión 2
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Fundamentos Divide Y Venceras
Fundamentos Divide Y VencerasFundamentos Divide Y Venceras
Fundamentos Divide Y Venceras
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
Modulo4
Modulo4Modulo4
Modulo4
 

Semelhante a Entrega 8 arreglos - controles - gráficos

Cu00322 a codigo ejemplo visual basic forms labels textbox command buttons
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttonsCu00322 a codigo ejemplo visual basic forms labels textbox command buttons
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttonsPEDRO DAMIAN CALDERA SANCHEZ
 
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttons
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttonsCu00322 a codigo ejemplo visual basic forms labels textbox command buttons
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttonsHector Brito
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretasFrancisco Lambert Obediente
 
Métodos Directos
Métodos DirectosMétodos Directos
Métodos DirectosKike Prieto
 
Desarrollo de proyecto Cap. 19
Desarrollo de proyecto  Cap. 19Desarrollo de proyecto  Cap. 19
Desarrollo de proyecto Cap. 19valkar21
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlabford81
 
3. planteamiento de las actividades y estrategias de aprendizaje
3. planteamiento de las actividades y estrategias de aprendizaje3. planteamiento de las actividades y estrategias de aprendizaje
3. planteamiento de las actividades y estrategias de aprendizajeYeisson Ruiz Ramirez
 
Suma de imagenes
Suma de imagenesSuma de imagenes
Suma de imagenesanar26
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmoszygdiaz
 
Presentación de matlab electromagnetismo ...
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...SimonCaceres4
 
Bucles for next step do while loop loop while visual basic ejemplo
Bucles for next step do while loop loop while visual basic ejemploBucles for next step do while loop loop while visual basic ejemplo
Bucles for next step do while loop loop while visual basic ejemploPedro Beltrán Llanez
 
Resumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de AlgoritmosResumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de Algoritmosmarshalleitor
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasJosé Antonio Sandoval Acosta
 

Semelhante a Entrega 8 arreglos - controles - gráficos (20)

arreglos y matrices
arreglos  y matricesarreglos  y matrices
arreglos y matrices
 
Arreglos, Procedimientos y Funciones
Arreglos, Procedimientos y FuncionesArreglos, Procedimientos y Funciones
Arreglos, Procedimientos y Funciones
 
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttons
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttonsCu00322 a codigo ejemplo visual basic forms labels textbox command buttons
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttons
 
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttons
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttonsCu00322 a codigo ejemplo visual basic forms labels textbox command buttons
Cu00322 a codigo ejemplo visual basic forms labels textbox command buttons
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
 
Separata java script
Separata java scriptSeparata java script
Separata java script
 
Métodos Directos
Métodos DirectosMétodos Directos
Métodos Directos
 
Desarrollo de proyecto Cap. 19
Desarrollo de proyecto  Cap. 19Desarrollo de proyecto  Cap. 19
Desarrollo de proyecto Cap. 19
 
Guia n2 tam 2009 1
Guia n2 tam 2009 1Guia n2 tam 2009 1
Guia n2 tam 2009 1
 
Procedimientos visual
Procedimientos visualProcedimientos visual
Procedimientos visual
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlab
 
3. planteamiento de las actividades y estrategias de aprendizaje
3. planteamiento de las actividades y estrategias de aprendizaje3. planteamiento de las actividades y estrategias de aprendizaje
3. planteamiento de las actividades y estrategias de aprendizaje
 
Suma de imagenes
Suma de imagenesSuma de imagenes
Suma de imagenes
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmos
 
Presentación de matlab electromagnetismo ...
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...
 
Bucles for next step do while loop loop while visual basic ejemplo
Bucles for next step do while loop loop while visual basic ejemploBucles for next step do while loop loop while visual basic ejemplo
Bucles for next step do while loop loop while visual basic ejemplo
 
Resumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de AlgoritmosResumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de Algoritmos
 
Tema 2
Tema 2Tema 2
Tema 2
 
Fundamentos de Python con Orientación a Objetos y Basado en Problemas
Fundamentos de Python con Orientación a Objetos y Basado en ProblemasFundamentos de Python con Orientación a Objetos y Basado en Problemas
Fundamentos de Python con Orientación a Objetos y Basado en Problemas
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
 

Último

TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 

Último (20)

TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 

Entrega 8 arreglos - controles - gráficos

  • 2. 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
  • 3. Lenguaje de Programación – 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 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 Joel Martin Chuco Marrufo 1
  • 4. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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. Joel Martin Chuco Marrufo 2
  • 5. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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) Joel Martin Chuco Marrufo 3
  • 6. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 4
  • 7. Lenguaje de Programación – 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 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. Joel Martin Chuco Marrufo 5
  • 8. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 6
  • 9. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005  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 Joel Martin Chuco Marrufo 7
  • 10. Lenguaje de Programación – 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 = 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() Joel Martin Chuco Marrufo 8
  • 11. Lenguaje de Programación – 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
  • 12. Lenguaje de Programación – 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
  • 13. Lenguaje de Programación – 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 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. Joel Martin Chuco Marrufo 11
  • 14. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 12
  • 15. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 13
  • 16. Lenguaje de Programación – 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
  • 17. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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. Joel Martin Chuco Marrufo 15
  • 18. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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. Joel Martin Chuco Marrufo 16
  • 19. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 17
  • 20. Lenguaje de Programación – 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 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. Joel Martin Chuco Marrufo 18
  • 21. Lenguaje de Programación – 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 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. Joel Martin Chuco Marrufo 19
  • 22. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 20
  • 23. Lenguaje de Programación – 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 '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 Joel Martin Chuco Marrufo 21
  • 24. Lenguaje de Programación – 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 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() Joel Martin Chuco Marrufo 22
  • 25. Lenguaje de Programación – 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 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. Joel Martin Chuco Marrufo 23
  • 26. Lenguaje de Programación – 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 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() Joel Martin Chuco Marrufo 24
  • 27. Lenguaje de Programación – 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, 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. Joel Martin Chuco Marrufo 25
  • 28. Lenguaje de Programación – 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
  • 29. Lenguaje de Programación – 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 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. Joel Martin Chuco Marrufo 27
  • 30. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 28
  • 31. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 29
  • 32. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 30
  • 33. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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" Joel Martin Chuco Marrufo 31
  • 34. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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" Joel Martin Chuco Marrufo 32
  • 35. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 33
  • 36. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 34
  • 37. Lenguaje de Programación – 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
  • 38. Lenguaje de Programación – 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 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 Joel Martin Chuco Marrufo 36
  • 39. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 37
  • 40. Lenguaje de Programación – 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
  • 41. Lenguaje de Programación – 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 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 Joel Martin Chuco Marrufo 39
  • 42. Lenguaje de Programación – 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
  • 43. Lenguaje de Programación – 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
  • 44. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 Joel Martin Chuco Marrufo 42
  • 45. Lenguaje de Programación – 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 Añadir = False Then If Me.cboModelo.Text <> "" Then Descripcion = Descripcion + " " + Me.cboModelo.Text Else Joel Martin Chuco Marrufo 43
  • 46. Lenguaje de Programación – 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 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 Joel Martin Chuco Marrufo 44
  • 47. Lenguaje de Programación – 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 codificación de esta aplicación en muy tediosa, pero aquí se encuentra casi todo los que hemos avanzado hasta ahora Joel Martin Chuco Marrufo 45
  • 48. Lenguaje de Programación – Capitulo XII Programando con Visual Basic 2005 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 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 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 Joel Martin Chuco Marrufo 46