我可以在 Inno Setup 中创建自己的 类 或单位吗?
Can I create my own classes or units in Inno Setup?
我想知道是否可以在 Inno Setup 中定义我自己的单位或 类 - 具有两个字段(就像定义记录)和方法。
否,您只能定义:
- 结构(
record
关键字)- 仅限字段,并且
- 接口(
interface
关键字)- 仅限抽象方法 - COM/ActiveX.
但是你不能实现类(字段和方法)。
Pascal 脚本甚至无法识别 class
关键字。
甚至 unit
s。 Inno Setup Pascal 脚本只是一个代码块。试图隐藏一些 implementation/code 真的没有任何意义。
如果您只是想以某种方式组织代码,可以使用 #include
directive of Inno Setup pre-processor 将代码拆分为文件。
你可以有一个 header/interface-like 文件,其中包含 "public" functions/procedures 和类似实现的文件,其中包含实现和 "private" functions/procedures.
类似界面的文件(比如说header.iss
):
procedure PublicProc; forward;
类似实现的文件(比如impl.iss
):
procedure PrivateProc;
begin
...
end;
procedure PublicProc;
begin
PrivateProc;
end;
并像这样使用它:
[Code]
#include "header.iss"
function InitializeSetup: Boolean;
begin
{ Here we can use the PublicProc, but not PrivateProc }
end;
#include "impl.iss"
我想知道是否可以在 Inno Setup 中定义我自己的单位或 类 - 具有两个字段(就像定义记录)和方法。
否,您只能定义:
- 结构(
record
关键字)- 仅限字段,并且 - 接口(
interface
关键字)- 仅限抽象方法 - COM/ActiveX.
但是你不能实现类(字段和方法)。
Pascal 脚本甚至无法识别 class
关键字。
甚至 unit
s。 Inno Setup Pascal 脚本只是一个代码块。试图隐藏一些 implementation/code 真的没有任何意义。
如果您只是想以某种方式组织代码,可以使用 #include
directive of Inno Setup pre-processor 将代码拆分为文件。
你可以有一个 header/interface-like 文件,其中包含 "public"
类似界面的文件(比如说header.iss
):
procedure PublicProc; forward;
类似实现的文件(比如impl.iss
):
procedure PrivateProc;
begin
...
end;
procedure PublicProc;
begin
PrivateProc;
end;
并像这样使用它:
[Code]
#include "header.iss"
function InitializeSetup: Boolean;
begin
{ Here we can use the PublicProc, but not PrivateProc }
end;
#include "impl.iss"