Ir para conteúdo


Foto

[DUVIDA] ProgressBar - Alterar Value em segundo plano

Progress progressbar

  • Por favor, faça o login para responder
2 respostas neste tópico

#1 pVinicius

pVinicius

    Novato

  • Membros
  • 1 posts
  • LocationGoiânia

Postado 03 junho 2016 - 03:00

Olá prezados...

Primeiramente quero dizer que sou membro ativo do forum gringo do AutoIt e ja tenho alguns scripts que utlizo no trabalho. Espero poder participar mais do forum BR e dar minhas contribuições para essa comunidade.

 

O ambiente

No local onde trabalho usamos um sistema online onde é necessario preencher formularios e salva-los na web usando essa interface.

Basicamente oq fazemos eh digitar varias e varas ficha com dados num formulario web e salva-las.

Enfrentamos varios problemas devido a pessima qualidade do nosso serviço de internet , que nos deixa algumas horas ociosos e obviamente nossa produção cai.

Desenvolvi uma ferramenta onde é possivel digtar os dados das fichas num formulario AutoIt. Esses dados sao guardados num arquivo XML e posteriormente sao enviados ao formulario web, nos permitindo produzir mesmo offline.

 

A Ideia:

Minha ideia é aprimorar essa ferramenta dando um ar "competitvo" à ela:
Adicionar um sistema de pontos ao formulario, os pontos sao contabilizados de acordo com o tempo que for necessario para se digitar uma ficha.

Num exemplo pratico um usuario tem um tempo X (digamos 60 segundos) para digitar uma ficha. Esse tempo sera visualizado através de uma progressbar no Status do form AutoIt.

A medida que o tempo passa, a value da Progressbar diminue tendendo a 0, caso chegue a 0 sera removido um ponto no score total do funcionario responsavei pela digitacao, alem de aumentar a media de tempo do para digitacao da ficha em 5 segundos (logo X que era igual a 60 passara a ser 65).

 

Caso o usuario digte a ficha em tempo habil sera adicionad um ponto e removido 5 segundos de seu tempo estimad (x passa a ser igual a 55)

O Algoritimo:

Nao vou pastar aqui pq eh absurdamente extenso.. mas basicamente Funciona da segunte forma:

  1. Usuario comeca a digitacao no form
  2. assim que ele sai do primeiro imputbox do forumulario eu registro o horario em que isso ocorre
  3. A progressbar comeca a ter seu value modifcado com o passar do tempo (enquanto o sario segue preenchendo o form
  4. Usuario Clica em "GRAVAR" finalizando o timer da progressbar e contabilizando a pontuacao

 

Meu problema esta no passo 3 e em parte do algortimo de calculo dos pontos.

Mas focando apenas no passo 3 a grande duvida é:

 

 

Como alterar o valor de um progressBar em segundo plano? Colocando o valor de ProgressBar setado em uma funcao que tera como variavel o tempo decorrido desde o exit do primeiro inputbox?

 

Agradeço a atenção e espera particpar mais desse forum.



#2 mutleey

mutleey

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPipPip
  • 277 posts
  • LocationSão José do Rio Preto-SP

Postado 03 junho 2016 - 04:51

Bom na programação a varias formas de se fazer a mesma coisa e obter o mesmo resultado... eu de inicio usaria TimerInit()TimerDiff(), sendo que ao digitar o primeiro caracter iniciaria um "timer" e ao clicar em "salvar" faria a comparação do tempo, mostrar os dados neste caso fica opcional (Progress bar, Porcentagem % etc...) e apartir do tempo final uma função para trabalhar com o resultado.



#3 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 319 posts
  • LocationVideira/SC

Postado 04 junho 2016 - 09:08

A sugestão do mutleey é a mais indicada para determinar o tempo para preenchimento do formulário.

Talvez para mostrar o tempo através de uma progressbar DURANTE a digitação, vc possa usar a função 

AdlibRegister

que chama uma função a cada intervalo determinado







Tópicos que também usam as tags Progress, progressbar:

0 usuário(s) está(ão) lendo este tópico

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Documentação OnLine de referência