Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: NsTeam en Septiembre 26, 2011, 03:33:44 am
-
Hola, bueno tengo un problema tratando de ralizar un aplicación. Tengo un commandbutton y un Timer
Como podría hacer para que cada vez que le de click al button y active el timer1, solo active una función?
Private Sub Command1_Click()
timer1.enabled = true
End Sub
Private Sub Timer1_Timer()
msgbox "prueba1"
msgbox "prueba2"
msgbox "prueba3"
msgbox "prueba4"
msgbox "prueba5"
msgbox "prueba6"
msgbox "prueba7"
timer1.enabled = false
End Sub
el timer tiene 7 funciones, pero como haría para que cada vez que le de clic al button y se active el timer solo cumpla una sola funcion en orden de Arriba para abajo, ejemplo:
primer clic: msgbox "prueba1", segundo clic: msgbox "prueba2"........
Gracia de Antemano :)
-
Dim a As Integer
Private Sub Command1_Click()
call aaa(5)
End Sub
Private Sub Timer1_Timer()
Select Case (a)
Case 0: Debug.Print "prueba: " & a
Case 1: Debug.Print "prueba: " & a
Case 2: Debug.Print "prueba: " & a
Case 3: Debug.Print "prueba: " & a
Case 4: Debug.Print "prueba: " & a
Case 5: Debug.Print "prueba: " & a
Case 6: Debug.Print "prueba: " & a
Case 7: Debug.Print "prueba: " & a
Case Else:
End Select
Timer1.Enabled = False
End Sub
private sub aaa(i as integer)
a = i
Timer1.Enabled = True
End Sub
-
Hola xkiz, agradezco tu respuesta y tu apoyo, pero quiero decir que no soy muy bueno en visual basic, y trate de probar el código y no sé que es lo que tendría que cambiar o modificar para que me anda, porque intente propando el codigo y no logré hacerlo :(
así mismo traté de buscar en google acerca de "debug.print" pero en realidad me enrede y no pude hacer lo que quería, agradecería mucho si me explicarías como puedo manejar este código.
Muchas gracias
-
Lo que pasa es que mi amigo xkiz ™ es de pocas palabras :) :) y va directo a la solución.
Lo que el te esta queriendo explicar es que te hagas un procedimiento, en su ejemplo le pasas el valor 5 y te saldra "prueba: 5", el debug.print es solo para comprobar que toma ese valor, lo ves en la ventana inmediato.
El "truco" esta en la variable a.
Voy a tratar de ponértelo de forma similar. Tu quieres que el usuario haga clic y la primera vez mostrara "prueba1" en el segundo clic "prueba 2" etc.
Tal como el hizo, declaras a nivel de formulario Dim a as Integer.
Como a inicialmente sera cero en tu boton "button" pones esto:
Private Sub Command1_Click()
a = a + 1
if a = 8 then '<----- Esto es opcional, si solo quieres usar 7, sino quitalo y deja solo Timer.Enabled = True
a = 1
end if
Timer.Enabled = true
End Sub
y en el timer te doy dos alternativas:
1.- Si solo quieres mostrar un mensaje como el que indicaste, pues bastaria con hacer
Private Sub Timer1_Timer()
Msgbox ("Prueba" & a)
Timer1.Enabled = False
End Sub
2.- O si quieres ejecutar un proceso o función dependiendo que numero de clic es entonces:
Private Sub Timer1_Timer()
Select Case (a)
Case 1: Procedimiento1
Case 2: Procedimiento2
Case 3: Procedimiento3
Case 4: Procedimiento4
Case 5: Procedimiento5
Case 6: Procedimiento6
Case 7: Procedimiento7
Case Else: ProcedimientoX '<-- Lo mismo, opcional, si solo tienes 7 quitas esto, sino dejalo para los demas casos.
End Select
Timer1.Enabled = False
End Sub
Aunque la verdad no se para que el timer ya que solo ocurre una vez y se desactiva, en ese caso, si lo que quieres es que se ejecute una sola función repetitivamente hasta que el usuario haga clic de nuevo y continue con la siguiente función repetitivamente, el código quedaría asi:
Private Sub Timer1_Timer()
Select Case (a)
Case 1: Procedimiento1
Case 2: Procedimiento2
Case 3: Procedimiento3
Case 4: Procedimiento4
Case 5: Procedimiento5
Case 6: Procedimiento6
Case 7: Procedimiento7
Case Else: ProcedimientoX .
End Select
End SubOsea no desactives el timer, si el usuario presiona por primera vez, se ejecutara Procedimiento1 repetitivamente hasta que el usuario presiona otra vez el boton y empezara a ejecutar Procedimiento2 repetitivamente. Alli si le veo sentido al Timer, no se si estamos sintonizados y si esta explicación te ayudo o te mareo ;) :) ;)
Saludos
-
jejeje... no es que sea de pocas palabras, si no que me ha pasado muchas veces que al tratar de explicar algo confundí aún mas a la persona que estaba explicándole algo X. por eso fui al código derecho, perdón...
PD: 37 palabras
-
jeje, bueno gracias YAcosta en verdad me sirvió de mucho tu explicación y también gracias a xkiz ™ porque gracias al código que me brindaste pude resolver mi problema :P
+1