PBToolboxAI v2 ← Site

progressbar — u_pbt_progressbar #

← Riferimento dei componenti · Sommario della guida

Barra di avanzamento a tema: barra orizzontale o anello, valore numerico o animazione di attesa, percentuale visualizzata, colore a scelta.

▶ Vederlo dal vivo — Applicazione dimostrativa, riquadro Progress: l'anteprima, il codice che lo produce e questa pagina, affiancati.


In breve #

Userobjectu_pbt_progressbar
Classe degli item— (componente senza item)
Serve perMostrare l'avanzamento di un'elaborazione lunga: importazione, esportazione, stampa, chiamata al server
Due utilizzideterminato (l'avanzamento è noto) o indeterminato (si sa soltanto che il lavoro è in corso)

Avvio rapido #

// event open della finestra
uo_progression.ib_label = true      // mostra la percentuale sulla barra
uo_progression.id_value = 0         // punto di partenza
// Durante l'elaborazione : una semplice assegnazione sposta la barra
for ll_i = 1 to ll_total
    of_traiter_ligne(ll_i)
    uo_progression.id_value = (ll_i / ll_total) * 100
next

Proprietà #

ProprietàTipoPredefinitoRuolo
id_valuedouble0Avanzamento corrente, espresso nella scala il_minimum … il_maximum
il_minimumlong0Limite inferiore della scala
il_maximumlong100Limite superiore della scala
is_modestring"linear"Forma del componente: linear (barra orizzontale) o circular (anello) — costanti MODE_LINEAR, MODE_CIRCULAR
ib_indeterminatebooleanfalseModalità attesa: animazione continua, id_value viene ignorata
ib_labelbooleanfalseMostra la percentuale sulla barra o al centro dell'anello
il_colorlong-1Colore di riempimento, nel formato RGB() di PowerBuilder. -1 = colore del tema
is_theme_stylestringfluentStile visivo del componente (costanti THEME_STYLE_*)
is_theme_modestringlightVariante chiara o scura (costanti THEME_MODE_*)
il_theme_accentlong-1Colore d'accento di questo componente (-1 = accento del tema)

Questo componente non espone tooltip (is_tooltip, is_super_tooltip_*): una barra di avanzamento si legge da sé, e un'etichetta al passaggio del mouse arriverebbe sotto il puntatore proprio nel momento in cui l'utente guarda altrove. Metta il commento sullo stato di avanzamento in uno statictext o in una statusbar accanto alla barra.


Metodi #

MetodoRuolo
of_reset ( )Riporta tutte le proprietà ai valori predefiniti (barra lineare, scala 0–100, valore 0, percentuale nascosta, colore del tema). Restituisce 0 una volta applicato, -2 se il componente non è creato
of_set_redraw (boolean)Raggruppa una serie di modifiche in un unico rendering. Restituisce 0 una volta applicato, -2 se il componente non è creato
of_save_as_png (string) · of_save_as_jpg (string)Esporta il rendering come immagine. Restituisce 0 una volta scritta l'immagine, -4 se la scrittura fallisce, -2 se il componente non è creato

Event #

EventAttivato quando
ue_ready ( )Il componente ha terminato il caricamento; tutto ciò che è stato inviato prima è stato riprodotto
ue_runtime_missing ( )Il runtime WebView2 è assente: il componente resta vuoto
ue_bg_color (long al_color)Il componente ha calcolato il colore di sfondo del proprio tema; l'userobject lo ha già adottato (backcolor)

Esempi #

Avanzamento determinato con percentuale #

uo_progression.ib_label = true
uo_progression.id_value = 75      // la barra si riempie per tre quarti

Avanzamento indeterminato (durata sconosciuta) #

// Quando la durata e sconosciuta : la barra si anima in continuo
// e ignora id_value
uo_progression.ib_indeterminate = true
// Una volta nota la durata, si torna alla modalita determinata
uo_progression.ib_indeterminate = false
uo_progression.id_value = 20

Anello circolare #

// Modalita di visualizzazione : linear (barra) o circular (anello)
uo_progression.is_mode  = uo_progression.MODE_CIRCULAR
uo_progression.ib_label = true
uo_progression.id_value = 40

Scala personalizzata #

// L'avanzamento non e sempre una percentuale : si indica la scala reale
uo_progression.il_minimum = 0
uo_progression.il_maximum = ll_nb_lignes    // es : 4820 righe da importare

uo_progression.id_value = ll_ligne_courante // valore grezzo, non una percentuale

La percentuale mostrata da ib_label resta calcolata rispetto a questa scala.

Colore personalizzato e pilotaggio del valore #

uo_progression.ib_label = true

// Il colore di riempimento accetta un RGB() standard di PowerBuilder
uo_progression.il_color = RGB(/*rosso*/ 16, /*verde*/ 137, /*blu*/ 62)

// La barra mostra un valore, non lo calcola : e il vostro codice a farlo avanzare
uo_progression.id_value = 0
// event timer della finestra, una volta al secondo
if uo_progression.id_value >= 100 then
	Timer(0)   // finito : il vostro codice lo sa, e lui che lo ha deciso
	uo_statut.of_item("main").is_text = "Importazione completata"
else
	uo_progression.id_value = uo_progression.id_value + 10
end if

Buone pratiche #

Ereditato dalla base comune #

Questi membri esistono su tutti i componenti visivi — non sono propri di questo. Sono descritti una sola volta, nei capitoli trasversali; questa tabella dice solo dove leggerli.

MembriRuoloDescritto in
of_resetRiportare il componente a zero3.6 Riportare un componente a zero: of_reset()
of_register_shortcut · of_clear_shortcutsScorciatoie da tastiera del componente3.5 Le scorciatoie da tastiera
of_is_created · of_is_ready · of_get_last_errorSe è nato, se è pronto, cosa è fallito3.7 Diagnostica
of_save_as_png · of_save_as_jpgEsportare il rendering in immagine3.8 Esportare il rendering come immagine
of_set_redrawRaggruppare le modifiche in un solo ridisegno3.10 Buone pratiche
of_preload_iconsIcone mostrate senza ritardoVisualizzazione istantanea: of_icon
of_set_translationTradurre una dicitura del componente5.2 Adattare un'etichetta: of_set_translation
of_focus_webviewDare il focus al componente6.4 Tastiera e focus
of_print · of_print_to_pdfStampare, o scrivere un PDF6.9 Stampare

Due aiuti non sono ereditati: of_icon e of_escape_markup vivono su n_pbt_utils. Ne dichiari uno — n_pbt_utils lnv_utils, niente da creare — e li chiami su di esso.


← Riferimento dei componenti · Sommario della guida