Terminando la interfaz

Bien, habíamos quedado en el post anterior por terminar la interfaz primaria del programa, para las funciones que tendrá esta primera beta. Vamos a necesitar un botón que asigne los puntos(btnasignar),otro que los sume (btnsumar), uno más para guardar la fecha jugada(btnguardar), un botón para agregar los equipos(btnnuevo), y por supuesto uno para cerrar el programa(btnsalir). La imagen del post anterior nos da una idea, pero es a gusto de consumidor. Mi idea de cómo colocar los botones sigue dos premisas básicas, que resulte cómodo para el usuario y los que llevan alguna secuencia estén en orden. Ya veremos en breve a qué me refiero con éste último punto. Debemos agregar también un columview al que llamaremos tabla

Vamos a necesitar que al empezar el programa se carguen los datos que vamos a utilizar,o sea la tabla con los equipos. Para eso vamos a tener que conectar a la base de datos mediante un objeto connection.

Al principio de fmain.class declaramos las variables comunes a todo el formulario:

Private hconn As Connection
Private hresul As Result

Luego creamos el procedimiento de conección:

Public Function ConectarBase() As Boolean

if hconn <> Null Then Return False

hconn = New Connection
hconn.Host = User.Home &/ “.goles1
hconn.name = “Futbol”
hconn.type = “sqlite3”
     Try hconn.Open()
         If Error Then
hconn = Null
Message.Error(“error al conectar con la base”)
     Return True
Endif
       Return False
End

Como podemos ver es el mismo código que usamos en los ejemplos anteriores(agenda y juego), donde indicamos la ubicación de la base, el tipo y nombre de la misma y le pedimos que se conecte y en caso contrario nos de error. Vemos que el path o ruta es:

hconn.Host = User.Home &/ “.goles1″ o sea la carpeta de usuario y dentro de la misma, la carpeta oculta .goles1. ¿Cómo nos aseguramos que la misma esté ahí?Primero, incluyéndolo en la carpeta Datos de nuestro programa (botón derecho sobre datos,nuevo, existente, navegamos hasta la carpeta donde lo tenemos y le damos aceptar).

Luego, en el evento open de fmain agregamos el siguiente código:

If Not Exist(User.Home &/ “.goles1/Futbol”)
     Try Mkdir User.Home &/ “.goles1”
  Copy “Futbol” To User.Home &/ “.goles1/Futbol”
Endif

Este método comprueba si existe la base, si no crea la carpeta y copia en ella la base que viene con el programa. Sencillo.A continuación todo  el código del Form_open:

Dim Clave As String

If Not Exist(User.Home &/ “.goles1/Futbol”)
Try Mkdir User.Home &/ “.goles1”
Copy “Futbol” To User.Home &/ “.goles1/Futbol”
Endif

tabla.Clear  ‘limpiar tabla

If ConectarBase() Then Return

tabla.Columns.Count = 5

tabla.Columns[0].text = “Equipo”
tabla.Columns[0].Width = 280
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = “Puntaje”
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 60
tabla.Columns[2].text = “Gf”
tabla.Columns[2].Width = 40
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[3].text = “Gc”
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 40
tabla.Columns[4].text = “zdif”
tabla.Columns[4].Alignment = Align.Center
tabla.Columns[4].Width = 40

hresul = hconn.Exec(“Select * from Equipos”) ‘consulta sql”

Do While hresul.Available
Clave = hresul[“Equipo”]
tabla.Add(Clave, Clave)
tabla[Clave][1] = hresul[“Puntaje”]
tabla[Clave][2] = hresul[“Gf”]
tabla[Clave][3] = hresul[“Gc”]
tabla[Clave][4] = hresul[“zdif”]
hresul.MoveNext()
Loop
   listar
             bloqueabotones

End

Lo que está en negrita es nuevo, lo anterior comprueba la conexión y carga los datos en el columview. El procedimiento    bloqueabotones  es sumamente sencillo y éste es su código:

Public Sub bloqueabotones()

Btnasignar.enabled = False
btnsumar.enabled = False
btnfecha.enabled = False

End

¿Por qué lo hacemos así en lugar de poner el código directamente en el procedimiento open? Porque vamos a necesitar hacer lo mismo en más de una ocasión y esto nos permite utilizar el mismo código sin necesidad de reescribirlo, simplemente lo llamamos por su nombre. En este caso particular es un código de apenas tres líneas y puede no parecer muy útil, pero imagine en los casos en que las líneas sean 10 o más y debas llamarlas varias veces a lo largo del programa. En el próximo post comentaremos listar y por primera vez haremos uso de funciones con parámetros.

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