From MediaMonkey Wiki
Revision as of 19:42, 28 September 2008 by Mk88 (talk | contribs)
Jump to: navigation, search

CoClass SDBApplication, Interface ISDBApplication

Property Get Progress As ISDBProgress

Property description

Returns SDBProgress object. It is also initialized and shown this way. In order to further modify the progress bar, see SDBProgress properties.

Example code

Dim Progress
Set Progress = SDB.Progress
Progress.Text = SDB.Localize("Exporting...")
Progress.MaxValue = list.count

for i=0 to list.count-1
  '... some code here
  Progress.Value = i+1

Example: Persistent progress bar

Progress bar is shown when is instantied by the script, and is removed from window when no reference to its instance remains in memory. However, we can keep one reference to the bar inside SDB.Objects storage. This prevents the progress bar from being destroyed by garbage collector and thus it remains visible.

// Example code in JavaScript:
function create_persistent_bar() {
   var bar = SDB.Progress;
   bar.Text = 'This progress bar remains visible.';
   SDB.Objects('MyProgressBar') = bar; // keep one reference to the progress bar in the global storage

Removing persistent progress bar
Progress bar is removed after no variables are pointing to the object. So overwriting the reference to the progress bar inside SDB.Objects with null/Nothing causes the progress bar dissapear. However, scripting engine does perform garbage collection only from time to time, so we need to call garbage collector explicitly or wait few seconds till progress bar disappears.

// Example code in JavaScript:
function remove_persistent_bar() {
   SDB.Objects('MyProgressBar') = null; // Unset the reference to progress bar instance.
   CollectGarbage(); // This undocumented JScript function runs GC instantly and removes the progress bar.