Para que serve um temporizador? Bem, imagine que você precise fazer uma função e
que ela tenha de ser executada repetidas vezes a cada intervalo de tempo determinado
por você, e que o programa principal siga em frente executando as outras funções.
O temporizador faz isso por você, executa repetidamente a função desejada.
É muito útil para atualizar horário ou datas num sistema, sem parar a execução principal.
Segue o código de uso do temporizador para fazer um relógio digital, bons estudos:
Esta é a função que será executada pelo temporizador, já no início do programa:
Dentro dela temos os seguintes comandos:
sis.data( ) retorna uma string do dia e hora, e depois definimos a data como texto do rótulo
No caso, componente é o “%s” passado como parâmetro no temporizador logo a frente no código, lembre-se que %s são caracteres que serão substituídos por um parâmetro passado automaticamente à função callback durante a execução.
e tempo é a string obtida da data e horário do sistema com o comando sis.data ( );
A novidade mesmo aqui é o temporizador que é criado pela função ig.temporizador, sua sintaxe é:
temp = ig.temporizador ( id , intervalo , componente_pai , string_da_funcao_callback );
onde teremo:
id = é a identidade do temporizador, é um número de 1 a 10, apenas esses números poderão ser usados,
pois só é possível criar 10 temporizadores, uma limitação é claro, mas é mais do que suficientes.
intervalo = é o tempo de espera para a função ser executada novamente, é em milisegundos, isto é,
se quiser um segundo deve passar o parâmetro 1000 ;
componente_pai = sem esse parâmetro não funciona, dá erro. Simplesmente passe a variável da janela principal,
para que serve este parâmetro? Muito simples, ao ser destruído o componente pai o temporizador é destruído também.
e por útilmo:
string_da_funcao_callback = é a função que você criou para ser repetida, deve passar a string dela ex:
se você criou uma função chamada tempori ( comp , janela ) o parâmetro será [[ tempori ( comp, janela ) ]] , com os
duplos colchetes indicando string.
Uma vez criado o temporizador ainda falta iniciá-lo, dar a partida, usando a seguinte função:
o primeiro parâmetro é a variável que guarda o temporizador, o segundo é o componente_pai de novo.
Para pausar o temporizador use:
e para reiniciar:
No exemplo acima coloquei essas funções dentro da callback do botão checagem, para que quando estiver ativo o botão
o temporizador pare e se tiver desmarcado, o temporizador reinicia.
Criando o botão checagem, não tem segredo algum, veja:
o único parâmetro é o texto que irá aparecer no botão.
Para conectar uma função neste botão siga a mesma forma dos botões normais, use o sinal ig.clique:
Ora, ainda não entendi o %s no parâmetro da string da função callback!
Veja é muito mais simples do que aparece, o %s é substituído durante a execução da callback pelo próprio
componente conectado a ela, que no caso é o bt_pause, seria o mesmo que bt_pause no lugar do %s:
porém é muito mais reaproveitável e flexível usar o %s , muito útil quando você cria e conecta componentes
dinamicamente por meio de matrizes.
Bom, queremos saber quando o botão checagem está marcado ou não e de
acordo com isso realizar um comando ou outro, para isso existe a seguinte função
que retorna verdadeiro caso o botão esteja marcado ou falso caso ele não esteja,
com isso é só fazer uma condição e pronto:
O único parâmetro é o botão a ser verificado, retorno = falso ou verdadeiro
No nosso exemplo acima nós definimos na condição que se ele estiver marcado o temporizador pára
senão o temporizador reinicia:
Bom, pessoal, é isso aí, até a próxima.
Att. Adalberto