\' Gambas class file
Private PorteroDeEstados As New Caretaker \'undo y redo
Public Sub _new()
End
Public Sub Form_Show()
\'guardaEstadoDelMarcador: guarda el estado actual....
guardaEstado()
Me.Center()
End
Public Sub buttonMarcador1_Click()
Dim nombre As String
Dim hora As String
nombre = InputBox("Nombre del jugador:")
hora = InputBox("Minuto del gol (0-90):")
ListBoxEquipo1.Add(nombre & " ( " & hora & "\' )")
If RadioButton1.Value = True Then
LCDLabel1Equipo1.value += 1
Else
LCDLabel2Equipo1.value += 1
Endif
LCDLabelFinEquipo1.value += 1
\'guardaEstadoDelMarcador: guarda el estado actual....
guardaEstado()
\'borrar lista de rehacer
PorteroDeEstados.BorrarEstadosRedo()
End
Public Sub buttonMarcador2_Click()
Dim nombre As String
Dim hora As String
nombre = InputBox("Nombre del jugador:")
hora = InputBox("Minuto del gol (0-90):")
ListBoxEquipo2.Add(nombre & " ( " & hora & "\' )")
If RadioButton1.Value = True Then
LCDLabel1Equipo2.value += 1
Else
LCDLabel2Equipo2.value += 1
Endif
LCDLabelFinEquipo2.value += 1
\'guardaEstadoDelMarcador: guarda el estado actual....
guardaEstado()
\'borrar lista de rehacer
PorteroDeEstados.BorrarEstadosRedo()
End
\'---------------------------------------------------------------------------------------
\'
Public Function EstadoActual() As State
Dim estado As New State
estado.setjugadores1(ListBoxEquipo1)
estado.setjugadores2(ListBoxEquipo2)
estado.setmarcador(LCDLabel1Equipo1.value, LCDLabel2Equipo1.value, LCDLabelFinEquipo1.value, LCDLabel1Equipo2.value, LCDLabel2Equipo2.value, LCDLabelFinEquipo2.value)
estado.settiempo(RadioButton1.value, RadioButton2.value)
Return estado
End
Public Sub guardaEstado()
PorteroDeEstados.addMementoUndo(EstadoActual())
End
Public Sub UndoEstado()
Dim s As State
Dim m As Integer[]
Dim r As Boolean[]
s = PorteroDeEstados.getMementoUndo()
If IsNull(S) Then
Message.Error("No hay nada que deshacer")
Return
Endif
\'lista de jugadores que marcaron goles...
s.getjugadores1(ListBoxEquipo1)
s.getjugadores2(ListBoxEquipo2)
m = s.getmarcador()
\'goles
LCDLabel1Equipo1.Value = m[0]
LCDLabel2Equipo1.Value = m[1]
LCDLabelFinEquipo1.Value = m[2]
LCDLabel1Equipo2.Value = m[3]
LCDLabel2Equipo2.Value = m[4]
LCDLabelFinEquipo2.value = m[5]
\'tiempo (1º o 2º parte)
r = s.gettiempo()
RadioButton1.Value = r[0]
RadioButton2.Value = r[1]
ToolButtonRehacer.enabled = True
End
Public Sub ToolButtonDeshacer_Click()
UndoEstado() \'undo
End
Public Sub ToolButtonRehacer_Click()
Dim s As State
Dim m As Integer[]
Dim r As Boolean[]
s = PorteroDeEstados.getMementoRedo()
If IsNull(S) Then
Message.Error("No hay nada que rehacer")
Return
Endif
\'lista de jugadores que marcaron goles...
s.getjugadores1(ListBoxEquipo1)
s.getjugadores2(ListBoxEquipo2)
m = s.getmarcador()
\'goles
LCDLabel1Equipo1.Value = m[0]
LCDLabel2Equipo1.Value = m[1]
LCDLabelFinEquipo1.Value = m[2]
LCDLabel1Equipo2.Value = m[3]
LCDLabel2Equipo2.Value = m[4]
LCDLabelFinEquipo2.value = m[5]
\'tiempo (1º o 2º parte)
r = s.gettiempo()
RadioButton1.Value = r[0]
RadioButton2.Value = r[1]
End