PBToolboxAI v2 ← Site

progressbar — u_pbt_progressbar #

← Referência dos componentes · Índice do guia

Barra de progresso com tema: barra horizontal ou anel, valor quantificado ou animação de espera, percentagem apresentada, cor livre.

▶ Ver ao vivo — Aplicação de demonstração, mosaico Progress: a pré-visualização, o código que o produz e esta página, lado a lado.


Em resumo #

Userobjectu_pbt_progressbar
Classe de items— (componente sem items)
Serve paraMostrar o avanço de um processamento longo: importação, exportação, impressão, chamada ao servidor
Duas utilizaçõesdeterminada (o avanço é conhecido) ou indeterminada (apenas se sabe que está a trabalhar)

Início rápido #

// event open da janela
uo_progression.ib_label = true      // apresenta a percentagem sobre a barra
uo_progression.id_value = 0         // ponto de partida
// Durante o processamento : uma simples atribuicao desloca a barra
for ll_i = 1 to ll_total
    of_traiter_ligne(ll_i)
    uo_progression.id_value = (ll_i / ll_total) * 100
next

Propriedades #

PropriedadeTipoPredefiniçãoFunção
id_valuedouble0Avanço atual, expresso na escala il_minimum … il_maximum
il_minimumlong0Limite inferior da escala
il_maximumlong100Limite superior da escala
is_modestring"linear"Forma do componente: linear (barra horizontal) ou circular (anel) — constantes MODE_LINEAR, MODE_CIRCULAR
ib_indeterminatebooleanfalseModo espera: animação contínua, id_value é ignorada
ib_labelbooleanfalseApresenta a percentagem sobre a barra ou no centro do anel
il_colorlong-1Cor de preenchimento, no formato RGB() do PowerBuilder. -1 = cor do tema
is_theme_stylestringfluentEstilo visual do componente (constantes THEME_STYLE_*)
is_theme_modestringlightVariante clara ou escura (constantes THEME_MODE_*)
il_theme_accentlong-1Cor de destaque deste componente (-1 = destaque do tema)

Este componente não publica tooltip (is_tooltip, is_super_tooltip_*): uma barra de progresso lê-se por si própria, e uma etiqueta ao passar o rato surgiria por baixo do ponteiro no preciso momento em que o utilizador olha para outro lado. Coloque o comentário de progresso num statictext ou numa statusbar ao lado da barra.


Métodos #

MétodoFunção
of_reset ( )Repõe todas as propriedades nos respetivos valores por omissão (barra linear, escala 0–100, valor 0, percentagem oculta, cor do tema). Devolve 0 depois de aplicado, -2 se o componente não estiver criado
of_set_redraw (boolean)Agrupa uma rajada de alterações numa única representação. Devolve 0 depois de aplicado, -2 se o componente não estiver criado
of_save_as_png (string) · of_save_as_jpg (string)Exporta a representação como imagem. Devolve 0 depois de a imagem ser escrita, -4 se a escrita falhar, -2 se o componente não estiver criado

Eventos #

EventoAcionado quando
ue_ready ( )O componente terminou o carregamento; tudo o que foi enviado antes foi reproduzido
ue_runtime_missing ( )O runtime WebView2 está ausente: o componente permanece vazio
ue_bg_color (long al_color)O componente calculou a cor de fundo do respetivo tema; o userobject já a adotou (backcolor)

Exemplos #

Progresso determinado com percentagem #

uo_progression.ib_label = true
uo_progression.id_value = 75      // a barra enche-se ate tres quartos

Progresso indeterminado (duração desconhecida) #

// Quando a duracao e desconhecida : a barra anima-se continuamente
// e ignora id_value
uo_progression.ib_indeterminate = true
// Assim que a duracao for conhecida, volta-se ao modo determinado
uo_progression.ib_indeterminate = false
uo_progression.id_value = 20

Anel circular #

// Modo de apresentacao : linear (barra) ou circular (anel)
uo_progression.is_mode  = uo_progression.MODE_CIRCULAR
uo_progression.ib_label = true
uo_progression.id_value = 40

Escala personalizada #

// O avanco nem sempre e uma percentagem : indica-se a escala real
uo_progression.il_minimum = 0
uo_progression.il_maximum = ll_nb_lignes    // ex : 4820 linhas a importar

uo_progression.id_value = ll_ligne_courante // valor bruto, nao uma percentagem

A percentagem apresentada por ib_label continua a ser calculada em relação a esta escala.

Cor personalizada e controlo do valor #

uo_progression.ib_label = true

// A cor de preenchimento aceita um RGB() padrao do PowerBuilder
uo_progression.il_color = RGB(/*vermelho*/ 16, /*verde*/ 137, /*azul*/ 62)

// A barra mostra um valor, nao o calcula : e o seu codigo que o faz avancar
uo_progression.id_value = 0
// evento timer da janela, uma vez por segundo
if uo_progression.id_value >= 100 then
	Timer(0)   // terminado : o seu codigo sabe-o, foi ele que o decidiu
	uo_statut.of_item("main").is_text = "Importação concluída"
else
	uo_progression.id_value = uo_progression.id_value + 10
end if

Boas práticas #

Herdado da base comum #

Estes membros existem em todos os componentes visuais — não são próprios deste. São detalhados uma só vez, nos capítulos transversais; esta tabela apenas diz onde os ler.

MembrosFunçãoDetalhado em
of_resetRepor o componente a zero3.6 Repor um componente a zero: of_reset()
of_register_shortcut · of_clear_shortcutsAtalhos de teclado do componente3.5 Os atalhos de teclado
of_is_created · of_is_ready · of_get_last_errorSe nasceu, se está pronto, o que falhou3.7 Diagnóstico
of_save_as_png · of_save_as_jpgExportar a renderização como imagem3.8 Exportar a representação como imagem
of_set_redrawAgrupar as alterações num único repinte3.10 Boas práticas
of_preload_iconsÍcones mostrados sem atrasoApresentação instantânea: of_icon
of_set_translationTraduzir uma legenda do componente5.2 Adaptar uma etiqueta: of_set_translation
of_focus_webviewDar o foco ao componente6.4 Teclado e focus
of_print · of_print_to_pdfImprimir, ou escrever um PDF6.9 Imprimir

Duas ajudas não são herdadas: of_icon e of_escape_markup vivem em n_pbt_utils. Declare um — n_pbt_utils lnv_utils, nada a criar — e chame-as nele.


← Referência dos componentes · Índice do guia