Jump to content

ProgressBar - Carregar VALUE de um cronometro


williamjda

Recommended Posts

Amigos boa tarde. Tenho um duvida e não consegui ainda achar uma solução.

Em minha aplicação tenho um monitor de serviços. Um deles configura o tempo em que o serviço será executado. Porem eu preciso fazer com que a progressBar seja carregada conforme o tempo estiver sendo acabando, mas não sei como fazer.

EXEMPLO: 

1 - Configuro o tempo que o sistema irá executar o serviço. Então o contador começa a fazer a contagem do tempo - 1. Ou seja, se eu definir que o tempo será executado a cada 00:01:00. O contador começa a subtrair 00:00:59, 00:00:58, 00:00:57 e assim por diante até chegar ao 00:00:00. Então o serviço é iniciado e começa novamente a contagem.

Mas gostaria que a progressBar fosse carregada conforme o tempo vai sendo zerado. Como fazer isso?

Segue abaixo o código do cronometro.

  Private Sub cronometroForm_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cronometroForm.Tick

        If tempo <> "00:00:00" Then
            Monitor_Servico.tempoPBTimer = "00:00:00"
            tempoCorrido = DateAndTime.DateAdd("s", -1, tempoCorrido)
            Timer1.Start()

            Monitor_Servico.lbl_tempo.Text = tempoCorrido
            If tempoCorrido = "00:00:00" Then
                tempoCorrido = tempo
            End If

        End If
    End Sub
Link to comment
Share on other sites

use uma variavel (do form ou static) que incremente a cada tick do timer

use a regra de 3 simples para saber o valor da progressbar..

ex:

a variavel está em 10 então o valor da progressbar seria 16.666

60 -> 100

10  ->  x

x = 10 * 100 / 60

onde 10 é a variavel que vai ser incrementada a cada tick/segundo

100 é o valor maximo da progressbar

60 é o numero de segundo por minuto

não deixe a variavel passar dos 60 senão a progressbar vai ter uma valor maior que 100 e dá erro...

Link to comment
Share on other sites

Olá amigo. Obrigado pela informação. Vou tentar fazer do jeito que você falou.

Mas eu consegui fazer. Talvez da forma que fiz não seja a melhor pratica. Mas a lógica empregada funcionou. Segue o código que fiz.

 	   Private Sub cronometroForm_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cronometroForm.Tick

         	Dim valueProgressVALUE As String 'RECEBE A CONTAGEM PROGRESSIVA DO TEMPO
            valueProgressVALUE = "00:00:00" 'DETERMINA QUE O TEMPO INICIE A PARTIR DE 00:00:00

            tempoCorrido = DateAndTime.DateAdd("s", -1, tempoCorrido) 'INICIA A CONTAGEM REGRESSIVA DO TEMPO
            valueProgressVALUE = DateAndTime.DateAdd("s", 1, valueProgressVALUE) 'INICIA A CONTAGEM PROGRESSIVA DO TEMPO
            valueProgressVALUE = valueProgressVALUE.Replace(":", "") 'REMOVE OS CARACTERES (:) - 000000

            Monitor_Servico.lbl_tempo.Text = tempoCorrido 'RECEBO O VALOR DA CONTAGEM PROGRESSIVA
            If tempoCorrido = "00:00:00" Then 'QUANDO ZERADO O CRONOMETRO
                tempoCorrido = tempo 'RECEBE O TEMPO INICIAL PARA COMEÇAR NOVAMENTE
                Monitor_Servico.ProgressBar_Email.Increment(0) 'ZERA A PROGRESSBAR PARA COMEÇAR NOVAMENTE
            End If

            Monitor_Servico.ProgressBar_Email.Increment(valueProgressVALUE) 'PROGRESSBAR RECEBE O VALOR PARA INCREMENTO

    End Sub

Bom, obrigado pela ajuda.

 

Atenciosamente;

 

William

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.