Topics   All   MacOS (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Deprecated   Guides   Examples   Videos
New in version: 11.3   11.4   11.5   12.0   12.1   12.2   12.3   12.4   12.5   13.0    Statistic    FMM    Blog  


Sets the current progress value.

Component Version macOS Windows Linux Server iOS SDK
ProgressDialog 2.4 ✅ Yes ✅ Yes ❌ No ❌ No ✅ Yes
MBS( "ProgressDialog.SetProgress"; value )   More


Parameter Description Example
value New value. Range from 0 to 100 for a normal progress bar or negative value for indeterminated progress bar. 50


Returns "OK" on success.


Sets the current progress value.
Depending on your range, you need to multiply/divide to get into range from 0 to 100. Typically you can simply do math like this: $index * 100 / $total. That calculates the percentage of files processed if you have $total files and current file index is $index.

If you process more than 100 items, please consider only updating progress if you actually moved forward 1%. You can do this by keeping variable with last progress you set and update only if new progress value is bigger.

Please do not call this function more than one time per second to avoid the progress window redraw to slow down your process.


Set progress bar to indeterminate while preparing operations:

MBS( "ProgressDialog.SetProgress"; -1 )

Set later progress bar to current value:

MBS( "ProgressDialog.SetProgress"; $index * 100 / $total )

Update only when changed by one percent:

Set Variable [$percent; Value:Round(100 * $current / $total; 0)]
If [$percent ≠ $lastpercent]
    Set Variable [$lastpercent; Value:$percent]
    Set Variable [$r; Value:MBS( "ProgressDialog.SetProgress"; $percent )]
End If

See also

Example Databases

Blog Entries

Created 18th August 2014, last changed 15th October 2022

ProgressDialog.SetPositionWindowCentered - ProgressDialog.SetShowButton

Feedback: Report problem or ask question.

Start Chat