inno-setuppascalscript

Can you define a function prototype in Inno Setup


I would like to be able to structure my code for my Inno Setup project but I am forced to move code around because you can't call a function unless it is defined first.

Is there a way to declare a prototype at the top so that I don't get the "Unknown identifier" error and so that I can structure my code in logical blocks.


Solution

  • In Pascal (including a Pascal Script used in Inno Setup), you can define a function prototype (aka forward declaration) using a forward keyword:

    procedure ProcA(ParamA: Integer); forward;
    
    procedure ProcB;
    begin
      ProcA(1);
    end;
    
    procedure ProcA(ParamA: Integer);
    begin
      // some code
    end;
    

    See Forward declared functions.