PBToolboxAI v1 ← Site

progressbar — u_pbt_progressbar #

← Komponentenreferenz · Inhalt des Handbuchs

Fortschrittsbalken im Design: waagerechter Balken oder Ring, Zahlenwert oder Warteanimation, angezeigter Prozentsatz, frei wählbare Farbe.

Live ansehen — Demoanwendung, Kachel Progress: die Vorschau, der zugehörige Code und diese Seite, nebeneinander.


Auf einen Blick #

Userobjectu_pbt_progressbar
Item-Klasse— (Komponente ohne Items)
WofürDen Fortschritt eines langen Vorgangs zeigen: Import, Export, Druck, Serveraufruf
Zwei Einsatzartenbestimmt (der Fortschritt ist bekannt) oder unbestimmt (man weiß nur, dass gearbeitet wird)

Schnellstart #

// open-Event des Fensters
uo_progression.ib_label = true      // zeigt den Prozentsatz auf dem Balken an
uo_progression.id_value = 0         // Ausgangspunkt
// Waehrend des Vorgangs : eine einfache Zuweisung bewegt den Balken
for ll_i = 1 to ll_total
    of_traiter_ligne(ll_i)
    uo_progression.id_value = (ll_i / ll_total) * 100
next

Eigenschaften #

EigenschaftTypStandardZweck
id_valuedouble0Aktueller Fortschritt, ausgedrückt auf der Skala il_minimumil_maximum
il_minimumlong0Untere Grenze der Skala
il_maximumlong100Obere Grenze der Skala
is_modestring"linear"Form der Komponente: linear (waagerechter Balken) oder circular (Ring) — Konstanten MODE_LINEAR, MODE_CIRCULAR
ib_indeterminatebooleanfalseWarte-Modus: fortlaufende Animation, id_value wird ignoriert
ib_labelbooleanfalseZeigt den Prozentsatz auf dem Balken oder in der Mitte des Rings an
il_colorlong-1Füllfarbe im PowerBuilder-Format RGB(). -1 = Farbe aus dem Design
is_theme_stylestringfluentVisueller Stil der Komponente (Konstanten THEME_STYLE_*)
is_theme_modestringlightHelle oder dunkle Variante (Konstanten THEME_MODE_*)
il_theme_accentlong-1Akzentfarbe dieser Komponente (-1 = Akzent des Designs)

Diese Komponente veröffentlicht keinen Tooltip (is_tooltip, is_super_tooltip_*): Ein Fortschrittsbalken spricht für sich selbst, und eine Beschriftung beim Überfahren erschiene genau in dem Moment unter dem Zeiger, in dem der Anwender woanders hinsieht. Setzen Sie den Kommentar zum Fortschritt in einen statictext oder eine statusbar neben den Balken.


Methoden #

MethodeZweck
of_reset ( )Setzt alle Eigenschaften auf ihren Standard zurück (linearer Balken, Skala 0–100, Wert 0, Prozentsatz ausgeblendet, Farbe aus dem Design)
of_set_redraw (boolean)Fasst eine Folge von Änderungen zu einer einzigen Darstellung zusammen
of_save_as_png (string) · of_save_as_jpg (string)Exportiert die Darstellung als Bild

Events #

EventAusgelöst wenn
ue_ready ( )Die Komponente ist fertig geladen; alles zuvor Gesendete wurde nachgespielt
ue_runtime_missing ( )Die WebView2-Runtime fehlt: die Komponente bleibt leer
ue_bg_color (long al_color)Die Komponente hat ihre Design-Hintergrundfarbe berechnet; das Userobject hat sie bereits übernommen (backcolor)

Beispiele #

Bestimmter Fortschritt mit Prozentsatz #

uo_progression.ib_label = true
uo_progression.id_value = 75      // der Balken fuellt sich zu drei Vierteln

Unbestimmter Fortschritt (unbekannte Dauer) #

// Wenn die Dauer unbekannt ist : der Balken animiert fortlaufend
// und ignoriert id_value
uo_progression.ib_indeterminate = true
// Sobald die Dauer bekannt ist, zurueck in den bestimmten Modus
uo_progression.ib_indeterminate = false
uo_progression.id_value = 20

Kreisförmiger Ring #

// Anzeigemodus : linear (Balken) oder circular (Ring)
uo_progression.is_mode  = uo_progression.MODE_CIRCULAR
uo_progression.ib_label = true
uo_progression.id_value = 40

Eigene Skala #

// Der Fortschritt ist nicht immer ein Prozentsatz : die echte Skala angeben
uo_progression.il_minimum = 0
uo_progression.il_maximum = ll_nb_lignes    // z. B. 4820 zu importierende Zeilen

uo_progression.id_value = ll_ligne_courante // Rohwert, kein Prozentsatz

Der von ib_label angezeigte Prozentsatz wird weiterhin anhand dieser Skala berechnet.

Eigene Farbe und Steuerung des Werts #

uo_progression.ib_label = true

// Die Fuellfarbe akzeptiert ein normales PowerBuilder-RGB()
uo_progression.il_color = RGB(/*rot*/ 16, /*gruen*/ 137, /*blau*/ 62)

// Die Leiste zeigt einen Wert an, sie berechnet ihn nicht : Ihr Code bewegt ihn
uo_progression.id_value = 0
// timer-Event des Fensters, einmal pro Sekunde
if uo_progression.id_value >= 100 then
	Timer(0)   // fertig : Ihr Code weiss es, er hat es entschieden
	uo_statut.of_item("main").is_text = "Import abgeschlossen"
else
	uo_progression.id_value = uo_progression.id_value + 10
end if

Best Practices #


← Komponentenreferenz · Inhalt des Handbuchs