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:
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 unit
s. 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"