Ampliando el juego 3

Habíamos añadido una base de datos a nuestro juego para tener un control de puntaje y jugadores. Vamos a añadir, en Fmain( el formulario principal) un columview  al que llamaremos simplemente tabla. Este nos permitirá visualizar los datos que se cargan al iniciar el programa a través del código que habíamos agregado en el evento open  de Fmain.

El procedimiento asignar nos permite elegir nuestro nombre haciendo click sobre el mismo en la tabla mencionada y copiarlo en un textbox agregado en fmain a tal efecto. Esto nos permite agregar el nombre al formulario de juego y tenerlo pronto para sumar los puntos. Agregaremos un botón nuevo con el texto agregar jugador con el código para llamar a fdata2. Este es el aspecto de fmain en tiempo de diseño-

tiempo diseño

FORMULARIO PRINCIPAL

Recordemos que en tiempo de diseño es el aspecto que tiene mientras trabajamos en el IDE de gambas.

Vamos a agregar un par de formularios nuevos fdata y fdata2 . Son muy simples . fdata lleva solo dos textbox : txtjugador y txtpuntaje y un control timer (Timer1)con su propiedad enabled a true( ojo que por defecto viene false )En delay le podemos poner 100, recordemos que son milisegundos. Con este formulario no vamos a interactuar, será el que use el programa para actualizar el puntaje.

fdata2es el que nos permitirá agregar nuevos jugadores a la lista.Este es su aspecto

fdata2

fdata2

Consta con un label, un textbox (txtnombre) y dos botones: btnaceptar y btncancelar. Y el siguiente es su código:

PRIVATE hconn AS Connection
PRIVATE hresul AS Result

PUBLIC SUB runnew(data AS Connection)

hconn = data
ME.ShowModal

END

PUBLIC SUB btncancelar_Click()

  ME.Close()

END

PUBLIC SUB btnaceptar_Click()

  IF txtnombre.Text = “” THEN
Message.Warning(“Teclee su nombre“)
ELSE
  TRY hconn.EXEC(“insert into jugadores values (&1,&2)”, txtnombre.text, “0“)

  ME.Close()
  CATCH
Message.Error(“Imposible introducir los datos solicitados“)
  ENDIF

END
Como siempre primero declaramos las variables y luego el código a utilizar. El cero entrecomillado en la línea insert intro es para que cuando cargue el nuevo jugador lo haga con cero puntos.

Este es el código de fdata

PRIVATE hconn AS Connection
PRIVATE hresul AS Result
PRIVATE editando AS Boolean

PUBLIC SUB runedit(data AS Result)

hresul = data
editando = TRUE
txtjugador.text = hresul[“Nombre”]
txtpuntaje.text = hresul[“puntaje”]
  ME.ShowModal

END

PUBLIC SUB Timer1_Timer()

IF editando THEN

TRY hresul[“Nombre”] = txtjugador.text
  TRY hresul[“puntaje”] = Val(txtpuntaje.text) + 1

TRY hresul.Update

  ELSE

   TRY hconn.EXEC(“insert into jugadores values (&1,&2)”, txtjugador.text, txtpuntaje.text)

  ENDIF

  ME.Close()
CATCH
Message.Error(“Imposible introducir los datos solicitados”)

END

En el evento timer de timer1 es donde aprovechamos a sumar el punto en esta línea

TRY hresul[“puntaje”] = Val(txtpuntaje.text) + 1 donde Val convierte a un número entero el valor de txtpuntaje para luego poder sumarle uno .

En el próximo post veremos como funciona esto con el resto del juego.

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