Inno Setup中的条件DisableProgramGroupPage

时间:2015-06-04 10:00:27

标签: inno-setup pascalscript

我正在尝试为普通和便携式安装创建单个安装程序。对于便携式安装,我禁用所有图标和卸载程序。

我遇到的唯一问题是如何在运行便携式安装时禁用程序组页面。我在这里误解了什么吗?

[Setup]
;This works as expected
Uninstallable=not IsPortable()
;This does NOT work, can't compile (DisableProgramGroupPage=yes alone compiles fine)
DisableProgramGroupPage=yes IsPortable()

编译失败,错误

  

[Setup] section directive ...的值无效。

这是IsPortable()函数:

function IsPortable(): Boolean;
begin
  if(StandardRadioButton.Checked = True) then
  Result := False
  else
  Result := True;
end;

1 个答案:

答案 0 :(得分:3)

(阐述@ TLama的评论)

DisableProgramGroupPage不支持“布尔表达式”:

  

[设置]:DisableProgramGroupPage
  有效值:autoyesno

Uninstallable相反:

  

[设置]:无法安装
  有效值:yesno或布尔表达式

您可以改为使用ShouldSkipPage event function

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result := False;

  if PageID = wpSelectProgramGroup then
  begin
    Result := IsPortable;
  end;
end;