Make your own free website on Tripod.com
-parte 10
volver a temporizadores Volver al índice Ir a manejo de formularios
En el siguiente proyecto hay un temporizador Timer 1 con un Interval inicial de 10000 indicado en la ventana de propiedades, pero en tiempo de ejecución el interval dependerá de una barra de desplazamiento horizontal llamada HScroll1. En la caja de texto Text1 aparecerá un texto que cambiará de "Esperando a cambiar" a "Tiempo cumplido". Una etiqueta llamada Label1 indicará el valor que tomará interval según la posición de la barra de desplazamiento horizontal. Habrá también un botón de nombre CmdFinalizar para terminar el programa.
Private Sub Form_Load()
HScroll1.Min = 100
HScroll1.Max = 2500
HScroll1.SmallChange = 10
HScroll1.LargeChange = 200
Timer1.Enabled = True
End Sub
Private Sub HScroll1_Change()
Label1.Caption = HScroll1.Value
Timer1.Interval = HScroll1.Value
End Sub
Private Sub HScroll1_Scroll()
Label1.Caption = HScroll1.Value
End Sub
Private Sub Timer1_Timer()
If Text1.Text = "Esperando a cambiar" Then
Text1.Text = "Tiempo cumplido"
Else: Text1.Text = "Esperando a cambiar"
End If
End Sub
Private Sub CmdFinalizar_Click()
End
End Sub

El siguiente ejercicio simula un juego en donde:

  1. Un cuadro de texto llamado Txtoculto tendrá (en la ventana de propiedades) su propiedad Visible en False a fin de que no se vea.
  2. Un cuadro de texto llamado Txtingresar tendrá (en la ventana de propiedades) Text 0 a fin de que al inicio se vea este valor.
  3. Otro cuadro de texto llamado Txtposibilidades tendrá (en la ventana de propiedades) Text "Esperar" a fin de que se vea este texto al comenzar.
  4. Un timer (temporizador) con un Interval de 5000 indicado en la ventana de propiedades.
  5. Seis botones llamados Cmd1 a Cmd6 colocarán en Txtingresar el N° correspondiente a cada botón.
  • Si este número coincide con el de Txtoculto deberá aparecer un MsgBox"ganaste" y finalizar el programa. En caso contrario el MsgBox dirá "perdiste" y el programa seguirá funcionando durante dos oportunidades más.
  • A cada ciclo del temporizador cambiará el valor de Txtoculto y el valor de txtposibilidades cambiará tomando un nuevo valor numérico que bajará de 3 hasta 0.
  • Si al aparecer valores en Txt posibilidades el usuario no hace ningún click en algún botón el valor Txtingresar será 0 y en ese caso aparecerá un MsgBox "perdiste" y terminará el programa.
  • Si Txtposibilidades dice"esperar" Txtoculto no tendrá todavía un nuevo valor. Para que no haya indicación de error es importante indicar a cada botón que solo coloque el valor correspondiente en Txtingresar cuando Txtoculto sea >=1
Private Sub Cmd1_Click()
If Val(Txtoculto.Text) >= 1 Then
Txtingresar.Text = 1
'Solo se podrá colocar un número en Txtingresar si hay un
'valor generado en Txtoculto

If Val(Txtingresar.Text) = Val(Txtoculto.Text) Then
MsgBox ("ganaste")
End
'En este caso el juego termina
Else: MsgBox ("perdiste")
Txtingresar.Text = Val(Txtoculto.Text)
'Se coloca en Txtingresar el valor que estaba en la caja
'oculta

End If
End If
End Sub
Private Sub Cmd2_Click()
If Val(Txtoculto.Text) >= 1 Then
Txtingresar.Text = 2
If Val(Txtingresar.Text) = Val(Txtoculto.Text) Then
MsgBox ("ganaste")
End
Else: MsgBox ("perdiste")
Txtingresar.Text = Val(Txtoculto.Text)
End If
End If
End Sub
Private Sub Cmd3_Click()
If Val(Txtoculto.Text) >= 1 Then
Txtingresar.Text = 3
If Val(Txtingresar.Text) = Val(Txtoculto.Text) Then
MsgBox ("ganaste")
End
Else: MsgBox ("perdiste")
Txtingresar.Text = Val(Txtoculto.Text)
End If
End If
End Sub
Private Sub Cmd4_Click()
If Val(Txtoculto.Text) >= 1 Then
Txtingresar.Text = 4
If Val(Txtingresar.Text) = Val(Txtoculto.Text) Then
MsgBox ("ganaste")
End
Else: MsgBox ("perdiste")
Txtingresar.Text = Val(Txtoculto.Text)
End If
End If
End Sub
Private Sub Tmr_Timer()
Randomize
'Para cualquier valor inicial utilizando Rnd se
'genera la misma secuencia de números, para evitarlo se usa
'Randomize que inicializa el generador (Rnd) de números
'aleatorios

I = Val(Rnd() * 5) + 1
'Rnd genera números dentro del rango
'0-1 con decimales para logar que empiece en "1" se coloca
'"+1", multiplicándolo por el Nº máximo - 1

I = CInt(I)
'Para transformar los decimales en enteros.
Txtoculto.Text = Val(I)
If Txtposibilidades.Text = "Esperar" Then
Txtposibilidades.Text = Val(4)
'Le indicamos a Txtposibilidades
'que cambie la cadena de caracteres por un valor numérico

End If
If Txtposibilidades.Text = 3 And Txtingresar.Text = 0 Then
MsgBox ("Perdiste")
'Si el usuario no hace click en algún
'botón Txtingresar permanecerá en "0" y el juego termina

End
End If
Txtposibilidades.Text = Val(Txtposibilidades.Text) - 1
'Hacemos que este cuadro de texto cuente hacia atrás
If Val(Txtposibilidades.Text) = 0 Then
'Al llegar a 0 el
'usuario tuvo sus tres posibilidades y el juego termina

MsgBox ("perdiste")
End
End If
End Sub
Private Sub Cmd5_Click()
If Val(Txtoculto.Text) >= 1 Then
Txtingresar.Text = 5
If Val(Txtingresar.Text) = Val(Txtoculto.Text) Then
MsgBox ("ganaste")
End
Txtingresar.Text = Val(Txtoculto.Text)
Else: MsgBox ("perdiste")
Txtingresar.Text = Val(Txtoculto.Text)
End If
End If
End Sub
Private Sub Cmd6_Click()
If Val(Txtoculto.Text) >= 1 Then
Txtingresar.Text = 6
If Val(Txtingresar.Text) = Val(Txtoculto.Text) Then
MsgBox ("ganaste")
End
Else: MsgBox ("perdiste")
Txtingresar.Text = Val(Txtoculto.Text)
End If
End If
End Sub
Veamos cómo se trabaja en VBasic cuando hay varios formularios
Volver arriba volver a temporizadores Volver al índice Ir a manejo de formularios