Can I create my own classes or units in Inno Setup?

后端 未结 1 1263
醉酒成梦
醉酒成梦 2021-01-14 19:35

I would like to know if it\'s possible in Inno Setup to define my own units or classes - with both fields (just like defining a record) and methods.

相关标签:
1条回答
  • 2021-01-14 20:21

    No, you can define only:

    • structures (record keyword) - fields only, and
    • interfaces (interface keyword) - abstract methods only - for COM/ActiveX.

    But you cannot implement classes (fields and methods).

    The Pascal Script does not even recognize the class keyword.


    Not even units. The Inno Setup Pascal Script is just a single block of code. There's no really any point trying to hide some implementation/code.


    If you just want to organize the code somehow, you can use the #include directive of Inno Setup pre-processor to split the code into files.

    You can have a header/interface-like file with prototypes/forward declarations of the "public" functions/procedures and implementation-like file with the implementation and "private" functions/procedures.

    The interface-like file (say header.iss):

    procedure PublicProc; forward;
    

    The implementation-like file (say impl.iss):

    procedure PrivateProc;
    begin
      ...
    end;
    
    procedure PublicProc;
    begin
      PrivateProc;
    end;
    

    And use it like:

    [Code]
    
    #include "header.iss"
    
    function InitializeSetup: Boolean;
    begin
      { Here we can use the PublicProc, but not PrivateProc }
    end;
    
    #include "impl.iss"
    
    0 讨论(0)
提交回复
热议问题