title: Inno Setup: Marquee style progress bar for lengthy synchronous operation in C# DLL
body: <p>I create setup for my program using Inno Setup. I have code C# and some wizard page runs it. I want to see &quot;ProgressBar&quot; (style Marquee) when my code C# works a long time. I want to undectend my code C# is working or hanging. How create a &quot;ProgressBar&quot; (style Marquee) in Inno Setup for my code C#. Thank you for any idea.</p>
  <p>Example Progress par:</p>
  <p><a href="https://i.stack.imgur.com/jkfXP.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/jkfXP.png" alt="enter image description here" /></a></p>
  <p>Some code:</p>
  <pre class="lang-pascal prettyprint-override"><code>[Files]
  Source: &quot;GetDataBases.dll&quot;; Flags: dontcopy
  
  [Code]
  
  function ServerOfDataBases(
    scriptName, server, user, password,nameDB: string;
    out strout: WideString): Integer;
    external 'ServerOfDataBases@files:GetDataBases.dll stdcall';
  
  var
    ServerDetailsPage: TInputQueryWizardPage;
  
  function CallDB(scriptName, server, user, password, nameDB: string):string;
  var
    retval: Integer;
    str: WideString;
  begin  
    retval := ServerOfDataBases(scriptName, server, user, password, nameDB, str); 
    Result:= str; 
  end;
  
  procedure InitializeWizard;
  var
   ...
  begin
    ServerDetailsPage := CreateInputQueryPage(wpWelcome, '', '', '...');
    ServerDetailsPage.Add('Server...', False);
    ...
    ServerDetailsPage.Values[0] := '';
  end;
  
  function NextButtonClick(CurPageID: Integer): Boolean;
  var
    DataDases: String;
  ...
  begin
    ...  
    if CurPageID = ServerDetailsPage.ID then
    begin
      ...
      DataDases := '';
      scriptName := 'ListDB';
      DataDases := CallDB(
        scriptName, ServerDetailsPage.Values[0], ServerDetailsPage.Values[2],
        ServerDetailsPage.Values[3], '');
       ...
    end;
  end;
  
      
  </code></pre>