williamjda Posted November 28, 2016 at 01:18 PM Report Share #600917 Posted November 28, 2016 at 01:18 PM 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 More sharing options...
vikcch Posted November 28, 2016 at 02:23 PM Report Share #600921 Posted November 28, 2016 at 02:23 PM 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 More sharing options...
williamjda Posted November 28, 2016 at 03:09 PM Author Report Share #600922 Posted November 28, 2016 at 03:09 PM 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 More sharing options...
williamjda Posted November 28, 2016 at 04:16 PM Author Report Share #600923 Posted November 28, 2016 at 04:16 PM Bom acho que me precipitei em dizer que funcionou. Alias funciona o carregamento da progressBar. Mas não da maneira que eu esperava. Bom estou tentando fazer da forma que o vikcch falou. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now