
A Barra Progressiva ou Barra de Progressão ("Progress Bar") é uma janela utilizada pelo aplicativo para visualizar e acompanhar a progressão de operações demoradas.
Na OpusWin, o recurso Progress Bar pode ser utilizado também como controle dentro de uma Janela de diálogo. Veja o Capítulo sobre Dialog Box para saber como construir e utilizar controles Progress Bar numa Janela de diálogo.
A Barra de Progressão consiste de um retângulo que é gradualmente preenchido, da esquerda para a direita, conforme a operação vai sendo executada..
A tabela a seguir mostra os comandos utilizados para definir e ativar uma Barra de Progressão. Após esta tabela de referência, apresentaremos um programa de exemplo.
|
Comandos |
Descrição dos comandos |
Sintaxe dos comandos |
|
PBCREATE |
Inicia a definição de uma Barra Progressiva, atribuindo-lhe o nome <nome>. A Barra de Progresso será posicionada nas coordenadas e com os tamanhos especificadas em <xi,yi,xl,yl>. Especificando a opção CHARS, as coordenadas serão medidas em caracteres. Caso contrario, será utilizada como unidade de medida o padrão UNITS, ou seja unidades lógicas. |
PBCREATE <nome> <xi,yi,xl,yl> [CHARS | UNITS] |
|
PBMESSAGE |
Envia para a Progress Bar <nome> o comando <cmd>, com os parâmetros <par1> ... <parn>. |
PBMESSAGE <nome> <cmd> <par1> ... <parn> |
|
SETSTEP |
Especifica o incremento ("step increment" ) da Progress bar, ou seja, a quantidade (degrau) pela qual a Progress Bar vai incrementar sua posição corrente sempre que recebe o comando STEPIT. Por default, o SETSTEP será 0 (zero). |
PBMESSAGE <nome> SETSTEP <degrau> |
|
SETRANGE |
Estabelece os valores mínimo e máximo para uma Progress Bar. Por default, o mínimo é zero e o máximo é 100. O limite superior (<max>) pode ser inicializado ou "resetado" pelos comandos InitControl e InitControlId. |
PBMESSAGE <nome> SETRANGE <min> <max> |
|
STEPIT |
Faz avançar a posição corrente da Barra de Progressão conforme o "step increment" previamente estabelecido. A Progress Bar é redesenhada para refletir a nova posição. Se a posição atingida exceder o valor máximo, a mesma é "resetada" de modo que o indicador de progressão é iniciado de novo. |
PBMESSAGE <nome> STEPIT |
|
SETPOS |
Posiciona o indicador de progressão no valor especificado em <npos>. A Barra Progressiva é redesenhada para refletir essa nova posição. |
PBMESSAGE <nome> SETPOS <npos> |
|
DESTROY |
desativa a janela que contém a Barra de Progressão cujo nome é <nome> |
PBMESSAGE <nome> DESTROY |
Veja, a seguir, um exemplo de utilização de Progress Bar.
$nolib
prog
pbcreate ProgressBar 02,01,76,2 && chars
pbmessage ProgressBar "SETRANGE" 1 20
pbmessage ProgressBar "SETSTEP" 1
for i=1 to 19
pbmessage ProgressBar "STEPIT"
sleep 1
temp=i*100/20
texto=str(i,2)+" --> "+str(temp,2)+" completo ..."
Showtext (02,04,texto,"arial",1,"B/G")
next
pbmessage ProgressBar "DESTROY"
return
Observação
O exemplo acima produz a seguinte Barra de Progressão:

