PBToolboxAI v3 ← Site

progressbar — u_pbt_progressbar #

← Referencia de componentes · Índice de la guía

Barra de progreso con tema: barra horizontal o anillo, valor numérico o animación de espera, porcentaje mostrado, color libre.

▶ Verlo en vivo — Aplicación de demostración, mosaico Progress: la vista previa, el código que lo genera y esta página, uno al lado del otro.


De un vistazo #

Userobjectu_pbt_progressbar
Clase de items— (componente sin items)
Sirve paraMostrar el avance de un procesamiento largo: importación, exportación, impresión, llamada al servidor
Dos usosdeterminado (se conoce el avance) o indeterminado (solo se sabe que está trabajando)

Inicio rápido #

// event open de la ventana
uo_progression.ib_label = true      // muestra el porcentaje en la barra
uo_progression.id_value = 0         // punto de partida
// Durante el procesamiento : una simple asignacion mueve la barra
for ll_i = 1 to ll_total
    of_traiter_ligne(ll_i)
    uo_progression.id_value = (ll_i / ll_total) * 100
next

Propiedades #

PropiedadTipoPredeterminadoFunción
id_valuedouble0Avance actual, expresado en la escala il_minimum … il_maximum
il_minimumlong0Límite inferior de la escala
il_maximumlong100Límite superior de la escala
is_modestring"linear"Forma del componente: linear (barra horizontal) o circular (anillo) — constantes MODE_LINEAR, MODE_CIRCULAR
ib_indeterminatebooleanfalseModo espera: animación continua, id_value se ignora
ib_labelbooleanfalseMuestra el porcentaje en la barra o en el centro del anillo
il_colorlong-1Color de relleno, con el formato RGB() de PowerBuilder. -1 = color del tema
is_theme_stylestringfluentEstilo visual del componente (constantes THEME_STYLE_*)
is_theme_modestringlightVariante clara u oscura (constantes THEME_MODE_*)
il_theme_accentlong-1Color de acento de este componente (-1 = acento del tema)

Este componente no publica tooltip (is_tooltip, is_super_tooltip_*): una barra de progreso se lee por sí sola, y una etiqueta al pasar el ratón aparecería bajo el puntero justo en el momento en que el usuario mira a otra parte. Ponga el comentario de avance en un statictext o una statusbar junto a la barra.


Métodos #

MétodoFunción
of_reset ( )Restablece todas las propiedades a sus valores predeterminados (barra lineal, escala 0–100, valor 0, porcentaje oculto, color del tema). Devuelve 0 una vez aplicado, -2 si el componente no está creado
of_set_redraw (boolean)Agrupa una ráfaga de modificaciones en una sola representación. Devuelve 0 una vez aplicado, -2 si el componente no está creado
of_save_as_png (string) · of_save_as_jpg (string)Exporta la representación como imagen. Devuelve 0 una vez escrita la imagen, -4 si la escritura falla, -2 si el componente no está creado

Eventos #

EventoSe activa cuando
ue_ready ( )El componente ha terminado de cargarse; todo lo enviado antes se ha reproducido
ue_runtime_missing ( )El runtime WebView2 está ausente: el componente permanece vacío
ue_bg_color (long al_color)El componente ha calculado el color de fondo de su tema; el userobject ya lo ha adoptado (backcolor)

Ejemplos #

Progreso determinado con porcentaje #

uo_progression.ib_label = true
uo_progression.id_value = 75      // la barra se rellena en tres cuartos

Progreso indeterminado (duración desconocida) #

// Cuando se desconoce la duracion : la barra se anima de forma continua
// e ignora id_value
uo_progression.ib_indeterminate = true
// Una vez conocida la duracion, se vuelve al modo determinado
uo_progression.ib_indeterminate = false
uo_progression.id_value = 20

Anillo circular #

// Modo de visualizacion : linear (barra) o circular (anillo)
uo_progression.is_mode  = uo_progression.MODE_CIRCULAR
uo_progression.ib_label = true
uo_progression.id_value = 40

Escala personalizada #

// El avance no siempre es un porcentaje : se indica la escala real
uo_progression.il_minimum = 0
uo_progression.il_maximum = ll_nb_lignes    // ej : 4820 lineas que importar

uo_progression.id_value = ll_ligne_courante // valor bruto, no un porcentaje

El porcentaje mostrado por ib_label sigue calculándose con respecto a esta escala.

Color personalizado y control del valor #

uo_progression.ib_label = true

// El color de relleno acepta un RGB() estandar de PowerBuilder
uo_progression.il_color = RGB(/*rojo*/ 16, /*verde*/ 137, /*azul*/ 62)

// La barra muestra un valor, no lo calcula : es su codigo el que lo hace avanzar
uo_progression.id_value = 0
// evento timer de la ventana, una vez por segundo
if uo_progression.id_value >= 100 then
	Timer(0)   // terminado : su codigo lo sabe, es el que lo ha decidido
	uo_statut.of_item("main").is_text = "Importación finalizada"
else
	uo_progression.id_value = uo_progression.id_value + 10
end if

Buenas prácticas #

Heredado de la base común #

Estos miembros existen en todos los componentes visuales — no son propios de este. Se detallan una sola vez, en los capítulos transversales; esta tabla solo dice dónde leerlos.

MiembrosFunciónDetallado en
of_resetPoner el componente a cero3.6 Poner un componente a cero: of_reset()
of_register_shortcut · of_clear_shortcutsAtajos de teclado del componente3.5 Los atajos de teclado
of_is_created · of_is_ready · of_get_last_errorSi ha nacido, si está listo, qué ha fallado3.7 Diagnóstico
of_save_as_png · of_save_as_jpgExportar el render como imagen3.8 Exportar la representación como imagen
of_set_redrawAgrupar los cambios en un solo repintado3.10 Buenas prácticas
of_preload_iconsIconos mostrados sin retardoVisualización instantánea: of_icon
of_set_translationTraducir una etiqueta del componente5.2 Adaptar una etiqueta: of_set_translation
of_focus_webviewDar el foco al componente6.4 Teclado y foco
of_print · of_print_to_pdfImprimir, o escribir un PDF6.9 Imprimir
of_set_property · of_get_property · of_component_nameControlar una propiedad por su nombre3.1 El motor de propiedades

Dos ayudas no se heredan: of_icon y of_escape_markup viven en n_pbt_utils. Declare uno — n_pbt_utils lnv_utils, nada que crear — y llámelas sobre él.


← Referencia de componentes · Índice de la guía