Classe de régua de processamento.

Hierarquia

tSrvObject -> tControl -> tMeter

Descrição

Utilize a classe tMeter para criar um controle que exibe uma régua (gauge) de processamento, descrevendo o andamento de um processo atraves da exibição de uma barra horizontal.

Parâmetros

NTotalNumérico. Número total de passos até o preenchimento da régua de processo.
lPercentageLógico. Se .T. considera o passo de movimentação em porcentagem.
nClrBarNumérico. Cor da barra de andamento.

Métodos

New

Descrição

Contrutor da classe.

Sintaxe

New([anRow], [anCol], [abSetGet], [anTotal], [aoWnd], [anWidth], [anHeight], [lPar8], [alPixel], [oPar10], [cPar11], [alNoPerc], [anClrPane], [nPar14], [anClrBar], [nPar16], [lPar17])

Parâmetros

anRowNumérico, opcional. Coordenada vertical em pixels ou caracteres.
anCol

Numérico, opcional. Coordenada horizontal em pixels ou caracteres.

abSetGet

Bloco de código, opcional. Bloco de código no formato {|u| if( Pcount( )>0, <var>:= u, <var> ) } que o controle utiliza para atualizar a variável <var>. <var> deve ser tipo numérico.

anTotal

Numérico, opcional. Numero total de passos até o preenchimento da régua de processo.

aoWnd

Objeto, opcional. Janela ou controle onde o controle sera criado.

anWidth

Numérico, opcional. Largura do controle em pixels.

anHeight

Numérico, opcional. Altura do controle em pixels.

lPar8

Reservado.

alPixel

Lógico, opcional. Se .T. as coordenadas informadas são em pixels, se .F. são em caracteres.

oPar10

Reservado.

cPar11

Reservado.

alNoPerc

Lógico, opcional. Se .T. (padrão) não considera os passos de atualização em porcentagem.

anClrPane

Numérico, opcional. Cor de fundo do controle.

nPar14

Reservado.

anClrBar

Numérico, opcional. Cor da barra de andamento.

nPar16

Reservado.

lPar17

Reservado.

Retorno

O objeto construído.

Set

Descrição

Atualiza a posição da régua de processamento.

Sintaxe

Set( [nVal] )

Parâmetros

nValNumérico, opcional. Novo valor da posição da régua de processamento.

Retorno

NIL

Exemplo

#include “protheus.ch”

 

Static lRunning:=.F., lStop:=.F.

 

User Function Teste()

 

Local oDlg, oMeter, nMeter:=0, oBtn1, oBtn2

DEFINE MSDIALOG oDlg FROM 0,0 TO 400,400 TITLE “Teste”

// cria a régua

oMeter:= tMeter():New(10,10,{|u|if(Pcount()>0,nMeter:=u,nMeter)};

,100,oDlg,100,20,,.T.)

// botão para ativar andamento da régua

@ 30,10 BUTTON oBtn1 PROMPT “Run” OF oDlg PIXEL ACTION RunMeter(oMeter)

@ 50,10 BUTTON oBtn2 PROMPT “Stop” OF oDlg PIXEL ACTION lStop:=.T.

ACTIVATE MSDIALOG oDlg CENTERED

 

Return nil

 

Static Function RunMeter(oMeter)

 

If lRunning

Return

Endif

lRunning:= .T.

// inicia a régua

oMeter:Set(0)

While .T. .and. !lStop

// pára 1 segundo

Sleep(1000)

// atualiza a pintura da janela, processa mensagens do windows

ProcessMessages()

// pega valor corrente da régua

nCurrent:= Eval(oMeter:bSetGet)

nCurrent+=10

// atualiza régua

oMeter:Set(nCurrent)

if nCurrent==oMeter:nTotal

Return

endif

Enddo

lRunning:= .F.

lStop:= .F.

 

Return

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Necessita de ajuda?