Ampliando el juego 5 (Y último)

Bien, nos había quedado pendiente explicar el procedimiento actualizar , que es el que suma el puntaje que van ganando los jugadores. Veamoslo en detalle:(explicaciones en color rojo)

Procedimiento actualizar

PUBLIC SUB actualizar()

DIM hresul AS Result   ‘primero la variable necesaria

IF tabla.Current = NULL THEN RETURN   ‘comprobamos que haya un registro seleccioado

IF ConectarBase() THEN RETURN

hresul = hconn.Edit(“jugadores”, “Nombre=&1″,
tabla.Current.Key)  ‘Aquí elegimos el registro actual y lo abrimos en modo edición
fdata.runedit(hresul)  ‘Aquí llamamos al procedimiento runedit de fdata
tabla.Current[0] = hresul[“Nombre”] ‘Aquí actualizamos los datos
tabla.Current[1] = hresul[“puntaje”]  ‘Aquí actualizamos los datos
cerrarconexion()
asignar

END

Hay dos líneas aquí que son especialmente importantes, ya que entre ellas hay un procedimiento que se realiza en otro formulario .Lo remarco en azul.

fdata.runedit(hresul)
tabla.Current[0] = hresul[“Nombre”]

Esta línea nos remite al runedit de fdata , que abre el formulario  fdata, cuyo código podemos recordar ahora.

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

En esta primera parte se declaran las variables,se pone la variable editando a true(verdadera) y se asignan a los cuadros de texto los valores correspondientes al jugador actual. Pero, lo más importante es la línea que dice Me.showmodal. ¿Qué significa esto? Que el formulario queda abierto de forma MODAL y hasta que el usuario o el programa no lo indiquen no se cerrará, por tanto el código del sub actualizar no pasará a la siguiente línea mientras esto no sucede.

En principio había puesto un botón al formulario para aceptar el punto, pero luego lo eliminé y agregué un timer que automatiza la suma del punto, a través de su evento timer.Recordemos el código.

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

Para terminar, las fuentes del juego y el instalador del mismo para Ubuntu y Debian lo pueden descargar en el siguiente enlace. Hasta el próximo proyecto.

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

4 respuestas a Ampliando el juego 5 (Y último)

  1. carlos franke dijo:

    Hola:
    Proyecto muy interesante.
    Quiero bajar el programa completo pero el enlace no funciona. Puedes volverlo a subir?

  2. dapeca2608 dijo:

    Perdona, olvide que las cosas estaban subidas a megaupload. En estos días lo soluciono.
    Gracias.

  3. dapeca2608 dijo:

    Solucionado, en una hora se podrá bajar desde el nuevo enlace

  4. carlos franke dijo:

    Gracias por tu pronta respuesta.
    Ahora mismo lo bajo, lo examino y te comento en unos dias.

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