Inno setup 检查Inno设置中是否只选择了一个特定组件

Inno setup 检查Inno设置中是否只选择了一个特定组件,inno-setup,pascalscript,Inno Setup,Pascalscript,当在组件选择页面中只选择了一个特定组件时,我需要跳过一个页面。请看下图 当选择“DBS跟踪Bodylife数据库”(在图像中突出显示)选项并单击“下一步”按钮时,要求跳过一页。如果我只选择该选项,我就可以使用下面的代码成功跳过该页 如果PageID=PageToBeSkipped.ID,则开始 结果:=not(IsComponentSelected('notdbs\TRACE'); 结束; 但是,如果我从这个接近20的页面中选择任何其他附加组件以及“DBS跟踪Bodylife数据库”,则不应

当在组件选择页面中只选择了一个特定组件时,我需要跳过一个页面。请看下图

当选择“DBS跟踪Bodylife数据库”(在图像中突出显示)选项并单击“下一步”按钮时,要求跳过一页。如果我只选择该选项,我就可以使用下面的代码成功跳过该页

如果PageID=PageToBeSkipped.ID,则开始
结果:=not(IsComponentSelected('notdbs\TRACE');
结束;
但是,如果我从这个接近20的页面中选择任何其他附加组件以及“DBS跟踪Bodylife数据库”,则不应跳过该页面。如果还选择了任何其他组件,则上述代码将跳过该页

我该怎么办


提前谢谢

要测试是否选择了除一个特定组件之外的任何组件,可以使用(返回以逗号分隔的选定组件列表)

函数ShouldSkipPage(PageID:Integer):布尔值;
开始
结果:=假;
如果PageID=PageToBeSkipped.ID,则
开始
结果:=(CompareText(WizardSelectedComponents(False),'DBS,DBS\TRACE')=0);
结束;
结束;

请注意,
向导SelectedComponents
甚至会返回“部分”选择的组件组。

酷。我迫不及待地想要一个新版本,在那里我们可以使用//注释。一开始,卷曲的背带把我甩了!我想他想要的是,如果只选择了dbs\trace,那么跳过页面。如@AndrewTruckle所评论的,使用组件的真实名称。实际名称很可能是
DBS\TRACE
,而不是
而不是DBS\TRACE
。但是很难从你的问题中分辨出来。这是代码
[Components]name:DBS\TRACE;类型:DBS TBLWOS;描述:DBS追踪身体生命数据库。因此,实际的代码应该是
(WizardSelectedComponents(False)='DBS\TRACE')
,然后..唉,它工作了。谢谢你的努力@MartinPrikryl,还有Andrew Truckle。
[Components]
Name: DBS\TRACE; Types: DBS TBLWOS; Description: DBS Tracing Bodylife Database;