Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old


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

This function checks for a license.

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

ProgressDialog.SetPositionWindowCentered - ProgressDialog.SetShowButton