
O comando Histogram constrói um outro tipo de Barra Progressiva, chamada Gauge, com o mesmo propósito e funcionamento da "Progress Bar", porém, com aparência diferente, pois preenche de modo mais contínuo e preciso a área que indica a progressão da operação.
O comando Histogram é incluído, geralmente, dentro de uma DialogBox ou uma Property Page, especificando em UNITS as unidades de medida referentes às coordenadas e os tamanhos da janela do Histograma.
Sintaxe
Histogram <lim> <inc> <xi,yi,xl,yl>
Onde:
<lim>
Especifica o limite máximo para o Histograma. Este limite pode ser inicializado ou "resetado" através dos comandos InitControl ou InitControlId.
<inc>
Estabelece um valor de incremento para o Histograma, ou seja, a maneira como o Histograma vai progredir a partir de sua posição corrente até atingir o valor especificado em <lim>.
<xi,yi,xl,yl>
Informa as coordenadas e tamanhos da janela (retângulo) do Histograma, especificadas em unidades de diálogo, ou seja Units.
O limite <lim> pode ser modificado de maneira dinâmica durante a execução de um procedimento, conforme apresentamos no exemplo a seguir.
Veja, a seguir, um exemplo de utilização de Histograma. Procure adaptá-lo a situações reais, por exemplo, um processo de cópia de arquivos, a instalação dos seus melhores softwares ... etc ...
$nolib
prog
b=1
lim = 50
pro = 0
func p1(l)
Dialog 08, 08, 209, 66 units
STYLE WS_OVERLAPPEDWINDOW
CAPTION "Histogram Demo"
Histogram lim pro 04,24,184,12
DefPushButton "Start" b 04,48,50,14 valid p1(lim, pro)
EndDialog
return
func p1
parameters lim(n), pro(n)
maxlim=300
InitControl (1,maxlim)
for pro = 0 to maxlim step 10
sleep 1
RefreshControl(1)
next
return .t.
Observação
O exemplo acima produz o seguinte Histograma:

