Progress bar — version history
The progress bar, linear or ring-shaped, with a waiting mode when the duration is unknown. Introduced in 1.0.
4.0 — October 2026 #
New #
is_label_format: a label of your own, where{percent},{value},{min}and{max}are replaced (numbers in the display language).is_state:STATE_NORMAL,STATE_PAUSED,STATE_ERROR, in the theme's state colors, like the Windows progress bar; it takes precedence overil_color.- The bounds accept decimals and large numbers: a 0..1 scale, or a number of bytes beyond 2 GB.
- The ring follows the size of the control (it was fixed at 128 px); the linear bar takes the full width and fits in a short control, like an
HProgressBar. - The percentage is written in the display language ("50 %" in French); the bar is announced to screen readers (translated name, value, waiting state).
- Setting
id_valueat every turn of a long loop is much cheaper (a loop of 20,000 values: about 2.4 s before, about 1 s now): only values that change the drawing are sent. - When Windows asks for fewer animations, the waiting mode pulses instead of sliding or spinning; it pauses when the component is hidden.
Fixed #
- In ring mode, the waiting mode shows a spinning arc (at value 0, nothing moved).
- The percentage is rounded down: "100 %" means finished (99.5% already displayed 100%).
- An empty or inverted range (
id_maximum = 0thenid_value = 0) gives 100% when the value reaches the maximum, 0% before (it was always 0%). of_set_property("value", "12,5")is read as 12.5; a text that is not a number is ignored (it could block the scale until the nextof_reset).- A small value keeps the shape of a pill;
of_reset()brings the bar back to zero at once, without sliding. - The track of the bar stands out in every theme.
id_valueread back keeps its decimals on a machine that uses a decimal comma.- Enter or Esc pressed in the component, when it does not use them, goes back to the window: the PowerBuilder
DefaultorCancelCommandButtonfires (the key was lost). - A language set by
PBT_SetLanguageapplies from the very next order given to the component: a text of an event raised by that order no longer comes in the old language. - With no language chosen by the application, the component announces English to screen readers (it announced French).
is_theme_style,is_theme_modeandil_theme_accentread back the style and mode shown and the component's own accent (-1when it has none); an unknown or badly written value is ignored instead of leaving the component without a theme, and an axis left empty follows the application's theme.- The application accent (
PBT_SetDefaultThemeAccent) survives a change of theme, is followed as long as the component has no accent of its own, and repaints everything derived from it (hover, pressed, selections); Windows high contrast is supported.
Behavior changes #
See the "Migrating from 3.0 to 4.0" guide, sections 11.6 and 11.24.
il_minimum/il_maximumbecomeid_minimum/id_maximum, of typedouble: rename them (the compiler shows each line).id_valueread back returns the last value set by the application.
3.0 — September 2026 #
New #
of_set_property,of_get_propertyandof_component_name: drive a property by its name (settings screen, saved configuration).
Fixed #
il_colorreads back the color that was set,-1when it is the theme's (it returned0).
2.0 — September 2026 #
New #
ue_script_error: a script error in the page reaches PowerBuilder with its message instead of being lost.
1.0 — August 2026 #
New #
- Linear bar or ring (
is_mode:MODE_LINEAR,MODE_CIRCULAR). - Value
id_valueon a scaleil_minimum..il_maximum. - Waiting mode (
ib_indeterminate) when the duration is unknown. - Displayed percentage (
ib_label) and fill color (il_color); light and dark themes, right-to-left reading.