hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
25 de Julio de 2008, 03:25:51
Noticias: Te consideras bueno en C++?
Para ver este enlace Registrate o Inicia Sesion
Aquí

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Programación en general
| | |-+  Visual Basic (Moderadores: ranefi, crypto136, ziBboh, >> s E t H <<)
| | | |-+  MsgBox Temporizado
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: MsgBox Temporizado  (Leído 341 veces)
Sh4k3
NZ1
*
Desconectado Desconectado

Mensajes: 28



Ver Perfil
« : 16 de Mayo de 2007, 05:37:40 »

Hola!  Cheesy

Pues es que tengo dos Form1 & Form2, entonces lo que quiero es que en el Form1 aparezca un MsBox con 10 seg regresivos, y cuando llegue a 0 entonces pase al Form2.
me puse a idear el código, y esto fue el resultado:


 
Código:
Option Explicit
Dim Temp As Integer

Private Sub Form_Load()
Temp = 10
Timer1.Interval = 1000
MsgBox "Espere Por Favor" & Temp

End Sub

Private Sub Timer1_Timer()

Temp = Temp - 1
MsgBox "Espere Por Favor" & Temp

If Temp = 0 Then
Timer1.Interval = 0
Form2.Show
End If
End Sub

El pequeño y gran problema es el siguiente: La regresión empieza desde 10 pero no pasa a 9 hasta que yo le de aceptar al MsgBox, cuando le doy aceptar entonces pasa al 8 y a si sucesivamente. ..

Mi duda es, como podría hacer para que el tiempo sea corrido de 10 a 0 y que se desactive el "Aceptar" para que luego cuando se llegue al 0 pasar al Form2


                                                   Muchas Gracias,
                                                                                Sh4k3
En línea

La diversidad de nuestras opiniones, no viene de que unos sean más razonables que otros, sino solamente de que conducimos nuestos pensamientos por diversas vías y no consideramos las mismas cosas...
                                 René Descartes
ziBboh
Moderador
*****
Desconectado Desconectado

Mensajes: 376


ziBboh dice: Ya nacio mini-ziBboh! :)


Ver Perfil
« Respuesta #1 : 17 de Mayo de 2007, 07:45:49 »

¿Cual Aceptar quieres que se desactive? el del MsgBox Huh
En línea



ziBboh dice: NO SPAM!El número de post no te hace mejor ...Todos somos iguales!
crypto136
Moderador
*****
Desconectado Desconectado

Mensajes: 228


ah no pues.....


Ver Perfil WWW
« Respuesta #2 : 17 de Mayo de 2007, 01:42:16 »

Lo que se me ocurre es que diseñes tu propio msgbox, me explico diseña en otro formulario el msgbox y le pones un label con un timer para que vaya aumentando o disminuyendo, y listo no te complicas la vida
En línea

Sh4k3
NZ1
*
Desconectado Desconectado

Mensajes: 28



Ver Perfil
« Respuesta #3 : 17 de Mayo de 2007, 03:41:03 »

Hola! Si yo pensé lo del label y lo del timer, el problema de ello, es que cuando diseño el msgbox, si presiono otro lugar de la pantalla, el MsgBox  desaparece detrás del Form..
Yo traté con 'Form1.Show vbModal' para que no desaparesca, pero igual desaparece.

-Además no se como hacer para que el timer vuelva a contar denuevo cuando vuelva a la Form Original...Me Explico Mejor:

Tengo
Form1 & Form2 y e Form3 (El del label y timer).
 Cmd :  Entrar
Cmd2 : Devolverse
-------------------------------------------
 Form1 (Boton Entrar) ----> entonces aparece el Form3,hace una regresión de 20 segundos a '0' y aparece el Form2...Hasta Ahi bien.

Ahora estoy en el Form2 con el Cmd2 llamado Devolverse, cuando lo presiono, me devuelvo al Form1.....

<El problema>

Cuando vuelvo a presionar el Cmd1 para ir denuevo al Form2, el Form3 (El del label y el temporizador) aparecen en '0' o sea que no hacen la cuenta regresiva.


Aqui está el códgio que hize:

Código:
Dim Tiempo As Integer

Private Sub Form_Load()
Tiempo = 20
Label1.Caption = Tiempo
Timer1.Interval = 1000
End Sub

 
Private Sub Timer1_Timer()
Tiempo = Tiempo - 1
Label1.Caption = Tiempo
If Tiempo = 0 Then
Timer1.Interval = 0
Form3.Show
Form5.Hide
End If
End Sub

--------------------------------------
Por esa razón prefiero el MsgBox común pero temporizado.

Citar
¿Cual Aceptar quieres que se desactive? el del MsgBox 

Sip, ese mismo y cuando la regresión llegue a '0' entonces se active denuevo.

--------------------------------------------------------------------------------

PD:> Si me pueden ayudar con lo del Label y el Timer para que siempre haga el conteo regresivo, entonces  me sería de más Utilidad que el msgBox temporizado...


                                                  Muchísimas Gracias  Wink
« Última modificación: 17 de Mayo de 2007, 05:11:01 por Sh4k3 » En línea

La diversidad de nuestras opiniones, no viene de que unos sean más razonables que otros, sino solamente de que conducimos nuestos pensamientos por diversas vías y no consideramos las mismas cosas...
                                 René Descartes
ziBboh
Moderador
*****
Desconectado Desconectado

Mensajes: 376


ziBboh dice: Ya nacio mini-ziBboh! :)


Ver Perfil
« Respuesta #4 : 18 de Mayo de 2007, 11:27:37 »

Saludos, te recomiendo que si haces tu MsgBox uses un label como contador, te dejo este ejemplo:
Código:
Private Sub Command1_Click()
Timer1.Enabled = True 'habilita el timer
End Sub

Private Sub Form_Load()
Label1.Caption = "10"  'el label1 es igual a 10 CONTADOR
Label1.Visible = False 'oculta el label1
Timer1.Enabled = False 'el timer esta deshabilitado
End Sub

Private Sub Timer1_Timer()
Label1.Caption = Label1.Caption - 1
If Label1.Caption = 0 Then 'Si label1 es igual a 0 entonces...
    Label1.Caption = "10"  'label1 vuelve a valer 10
    MsgBox "Hola"          'muestra hola
    Timer1.Enabled = False 'se inhabilita el timer
End If
End Sub
En línea



ziBboh dice: NO SPAM!El número de post no te hace mejor ...Todos somos iguales!
tragantras
NZ1
*
Desconectado Desconectado

Mensajes: 87



Ver Perfil
« Respuesta #5 : 18 de Mayo de 2007, 11:56:02 »

Jo xD nada mas terminar d hacerlo m di cuenta k m ejemplo es casi identico al de arriba xD
Pero weno yo lo pongo pq m hace ilusion jejeje

Código:
Option Explicit

Private Sub Command1_Click()
Form2.Show vbModal
Form1.Hide

End Sub

Private Sub Form_Load()
Command1.Enabled = False
Command1.Caption = 10
End Sub

Private Sub Timer1_Timer()
Command1.Caption = Val(Command1.Caption) - 1

If Command1.Caption = 0 Then
Command1.Enabled = True
Timer1.Enabled = False
Command1.Caption = "Entrar"
End If

End Sub
En línea

¿Me das tu ip? XDDD
Sh4k3
NZ1
*
Desconectado Desconectado

Mensajes: 28



Ver Perfil
« Respuesta #6 : 19 de Mayo de 2007, 02:11:42 »

Muchas Gracias por responder, están muy funcionales los codecs...pero tengo el mismo problema con los dos... Sad

-----------------------------------------------------------------------------------------------------
Ok les voy a decir para que lo ocupo....Ese contador regresivo es para un contador de votos que estoy terminando... Lo que quiero es que cuando una persona clickee en el candidato, pase a una pantalla con un contador regresivo  para que de tiempo a que la otra persona llegue para votar.
Cuando el contador regresivo llegue a cero, entonces pasa  a la pantalla de votaciones, donde eventualmente se emitirá el voto.
Cuando la segunda persona vote x el candidato que quiere entonces otra vez, la pantalla del contador regresivo aparecerá.
----------------------------------------------------------------------------------------------------

En el de ziBboh...el problema, es que en el form de regresión no pueden haber CommandButtons, entonces decidí quitarlo y pornerle en el Form_Load el timer en Enable....
Pero cuando el segundo participante vota x el candidato que quiere, entonces en el form de regresión, el label queda en 10, osea no hay regresion, solo se queda en 10.

-----------------------------------------------------------------------------------------------------
En el de tragantras  igual, no pueden haber CommandsButton en el form de regresión...El problema es que cuando pasas del Form de regresión al form de votos una segunda vez, no hay regresión, solo aparece el Cmd con 'Entrar'
-----------------------------------------------------------------------------------------------------


AQUI LES DEJO EL LINK DEL PROGRAMA, PARA QUE PUEDAN DARSE UNA IDEA DEL PROBLEMA QUE TENGO...
 

Link1

   http://rapidshare.com/files/32260658/Votaciones.zip.html

 


INFINITAS GRACIAS BROTHERS POR TRATAR DE AYUDARME!!!!!!!! Wink Cheesy



« Última modificación: 19 de Mayo de 2007, 02:13:11 por Sh4k3 » En línea

La diversidad de nuestras opiniones, no viene de que unos sean más razonables que otros, sino solamente de que conducimos nuestos pensamientos por diversas vías y no consideramos las mismas cosas...
                                 René Descartes
tragantras
NZ1
*
Desconectado Desconectado

Mensajes: 87



Ver Perfil
« Respuesta #7 : 20 de Mayo de 2007, 12:42:31 »

Mira, lo que ocurre es que al utilizar formXXX.show y hide, el formulario se oculta pero al mostrarlo de nuevo no se carga sino que se DESOCULTA, por lo que el form_load no se carga.

Al no cargarse el form load no se puede producir la regresion, para evitar esto tienes que hacer lo siguiente.

Form1
Código:
Private Sub Command1_Click()
Form2.Show
Unload Form1
Unload Form3
End Sub

Private Sub Command2_Click()
Form2.Show
Unload Form1
Unload Form3
End Sub

Form2
Código:
Dim I As Integer

Private Sub Form_Load()
I = 5
Label1.Caption = I
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
I = I - 1
Label1.Caption = I
If Label1.Caption = 0 Then
Timer1.Interval = O
Form3.Show
Unload Form1
Unload Form2
End If
End Sub

Form 3
Código:
Private Sub Command1_Click()
Form1.Show
Unload Form2
Unload Form3
End Sub

Es decir, utilizar unload en vez de hide, para asi al cargar de nuevo el form pasar por el form_load


Suerte ^^
En línea

¿Me das tu ip? XDDD
Sh4k3
NZ1
*
Desconectado Desconectado

Mensajes: 28



Ver Perfil
« Respuesta #8 : 20 de Mayo de 2007, 09:50:27 »


 OOOO  No sabía lo del unload Form Tragantras  jejejeje...  Shocked Wink
 Ahora si me sirve!!!!!!!!!!!!!!!!!!!!!  Grin


                   Muchísimas Gracias tragantras,ziBboh,crypto136

                              Les Agradezco Muchísimo!!!!!


                                                    Saludos Wink
En línea

La diversidad de nuestras opiniones, no viene de que unos sean más razonables que otros, sino solamente de que conducimos nuestos pensamientos por diversas vías y no consideramos las mismas cosas...
                                 René Descartes
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online