Inno setup Inno设置-查看选择了多少组件
实际上,我只需要看看它是Inno setup Inno设置-查看选择了多少组件,inno-setup,pascal,pascalscript,Inno Setup,Pascal,Pascalscript,实际上,我只需要看看它是1还是更多。以下是我计划如何使用它: if [Only one component is selected] then begin Result := CustomMessage('[Name of that component]'); if IsComponentSelected('[Specific Component]') then begin if IsTaskSelected('[Task]') then begin Re
1
还是更多。以下是我计划如何使用它:
if [Only one component is selected] then
begin
Result := CustomMessage('[Name of that component]');
if IsComponentSelected('[Specific Component]') then
begin
if IsTaskSelected('[Task]') then
begin
Result := CustomMessage('[Name of that task]');
end
end
end
if [More than one component is selected] then
begin
Result := 'Full Feature';// or '{#SetupSetting("AppName")}'
end;
我想我知道至少有一种“变通”方法可以做到这一点,但我想知道是否可以用更传统的Inno方法(和更干净的代码)来实现这一点
----编辑---
使用Martins答案的最终函数:
function UninstallName(Value: string): string;
begin
if GetSelectedComponentsCount = 1 then
begin
Result := CustomMessage(WizardSelectedComponents(False));
if IsComponentSelected('bc2') then
begin
if IsTaskSelected('bc2tp2') then
begin
Result := CustomMessage('bc2tp2');
end;
end;
if Pos(':',Result) > 1 then
StringChangeEx(Result, ':', ' -', False)
end;
if GetSelectedComponentsCount > 1 then
begin
Result := '{#SetupSetting("AppName")}';
end;
end;
检查
向导表单。组件列表
:
函数GetSelectedComponentCount:整数;
变量
I:整数;
开始
结果:=0;
对于I:=0到WizardForm.ComponentsList.Items.Count-1 do
开始
如果选中了WizardForm.ComponentsList
结果:=结果+1;
结束;
结束;
您还可以计算以下区域中的元素数:
函数GetSelectedComponentCount:整数;
变量
S:TStringList;
开始
S:=TStringList.Create();
S.CommaText:=向导选择的组件(False);
结果:=S.计数;
美国自由;
结束;
(计算逗号会更有效,代码也会稍微少一点,但理解起来有些晦涩。)下次,请向我们展示您的解决方法。展示你已经尝试过的东西是你的责任
getselectedcomponentscont
对我来说非常有用。非常感谢。我的“变通方法”与您的第二个答案(使用WizardSelectedComponents)类似,但没有那么紧凑。