Sigamos avanzando

Bien, ya hemos visto como usar el mismo código en varias partes de nuestro programa y como llamarlo desde diferentes procedimientos.

Ahoara nos encontramos con la fase en que, tras escribir nosotros los resultados el programa calcule y asigne los puntos a cada uno. Como ya sabemos el empate da un punto a cada uno,la victoria tres y la derrota cero punto. Por tanto, necesitamos que el programa compare en cada partido los goles del local, los del visitante y en virtud de eso asigne los puntos. Vamos a crear una función que nos devuelva en una variable el resultado de esa comparación. Veamos como:

Private Function compara(goleslocal As ValueBox, golesvisita As ValueBox) As Integer
   Dim estado As Integer = 0
If goleslocal.value = golesvisita.value Then
estado = 1
Else
   If goleslocal.value > golesvisita.value Then
estado = 2
    Else
estado = 3
  Endif
Endif
Return estado
End
Primero declaramos la variable Estado como integer(entero) y la inicializamos con un valor de cero, luego realizamos la comparación con una sentencia condicional if..then..else if,else y devolvemos el estado mediante la sentencia return estado

Lo siguiente es crear el procedimiento asignar

Public Sub asignar(goleslocal As ValueBox, puntoslocal As ValueBox, golesvisita As ValueBox, puntosvisita As ValueBox)
Select Case compara(goleslocal, golesvisita)
  Case 1
puntoslocal.Value = “1
puntosvisita.Value = “1
   Case 2
puntoslocal.Value = “3
puntosvisita.Value = “0
Case 3
puntoslocal.Value = “0
puntosvisita.Value = “3
   End Select
End Sub

Según el estado de la función compara  se asignan los puntos. Solo nos resta pasarle los parámetros para que sepa que valores comparar y cuales asignar. Para eso en el evento click del botón btnasignar llamamos al procedimiento homónimo (asignar)

Public Sub Btnasignar_Click()
asignar(vb1, vb2, vb3, vb4)
asignar(vb5, vb6, vb7, vb8)
asignar(vb9, vb10, vb11, vb12)
asignar(vb13, vb14, vb15, vb16)
asignar(vb17, vb18, vb19, vb20)
asignar(vb21, vb22, vb23, vb24)
asignar(vb25, vb26, vb27, vb28)
asignar(vb29, vb30, vb31, vbv32)
btnsumar.enabled = True
Btnasignar.enabled = False
End

Para que se entienda esto : asignar(vb29, vb30, vb31, vbv32) equivale a               asignar(goleslocal As ValueBox, puntoslocal As ValueBox, golesvisita As ValueBox, puntosvisita As ValueBox)

vb29= goleslocal   vb30=puntos local   vb31=golesvisita   vb32=puntosvisita,

Como podemos ver el código repite el procedimiento para cada cuarteta de valuebox, lo cual nos evita reescribir el  procedimiento de comparación y asignación para cada partido.

Por último se bloquea el botón asignar(btnasignar) que ya cumplió su función y se habilita el botón sumar puntos (btnsumar), que es lo próximo que debemos hacer. Es un procedimiento algo complejo, ya que hay que seleccionar equipo por equipo, abrir la tabla en modo edición, sumar puntos y goles, actualizar diferencia de goles  y pasar al siguiente equipo. Por tanto,  para no embarullar mucho, queda para el próximo post.

Anuncios
Esta entrada fue publicada en programación y etiquetada . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s