Inno Setup - 查看选择了多少组件

乔治·霍夫汉尼斯

实际上,我只需要看看它是否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;
马丁·普里克里尔

检查WizardForm.ComponentsList

function GetSelectedComponentsCount: Integer;
var
  I: Integer;
begin
  Result := 0;
  for I := 0 to WizardForm.ComponentsList.Items.Count - 1 do
  begin
    if WizardForm.ComponentsList.Checked[I] then
      Result := Result + 1;
  end;
end;

您还可以计算 中的元素数WizardSelectedComponents

function GetSelectedComponentsCount: Integer;
var
  S: TStringList;
begin
  S := TStringList.Create();
  S.CommaText := WizardSelectedComponents(False);
  Result := S.Count;
  S.Free;
end;

(计算逗号会更有效,代码会稍微少一些,但很难理解。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Inno Setup:选择组件的功能

来自分类Dev

Inno Setup中较大的“选择组件”页面

来自分类Dev

选择特定组件后,Inno Setup会禁用组件选择

来自分类Dev

如果选择了组件,则Inno Setup重命名文件

来自分类Dev

如何根据Inno Setup中选择的组件设置启动程序?

来自分类Dev

Inno Setup的只有特定的组件选择任务检查

来自分类Dev

Inno Setup根据所选组件更改AppName

来自分类Dev

如何从代码部分完全禁用Inno Setup中的特定组件?

来自分类Dev

如何使用Inno Setup作为必备组件安装.NET Framework?

来自分类Dev

Inno Setup:检查组件以前是否已下载

来自分类Dev

Inno Setup-在“选定组件”菜单上禁用下拉列表

来自分类Dev

Inno Setup-按组件定义磁盘空间

来自分类Dev

Inno Setup:检查以前是否已下载组件

来自分类Dev

Inno Setup-按组件定义磁盘空间

来自分类Dev

Inno Setup:如果选择了其他组件,则禁止显示警告

来自分类Dev

当指定/ Type命令行参数时,Inno Setup跳过“选择组件”页面

来自分类Dev

使用配置文件选择要与Inno Setup一起安装的组件

来自分类Dev

Inno Setup:如果选择了其他组件,则禁止显示警告

来自分类Dev

Inno Setup记住当Uninstallable = no时选择的安装类型

来自分类Dev

Inno Setup:自定义页面选择更新或删除/卸载

来自分类Dev

Inno Setup语法-OR,AND

来自分类Dev

Inno Setup中的TTreeView

来自分类Dev

如果在Inno Setup中未选择任何组件,如何禁用“下一步”按钮?

来自分类Dev

inno setup中的“ Not in a loop”错误

来自分类Dev

未捕获Inno Setup异常

来自分类Dev

如何从Inno Setup安装JRE?

来自分类Dev

Inno Setup ComponentsList OnClick事件

来自分类Dev

Inno Setup设置TInputQueryWizardPage高度

来自分类Dev

Inno Setup从CDATA创建TStringList

Related 相关文章

  1. 1

    Inno Setup:选择组件的功能

  2. 2

    Inno Setup中较大的“选择组件”页面

  3. 3

    选择特定组件后,Inno Setup会禁用组件选择

  4. 4

    如果选择了组件,则Inno Setup重命名文件

  5. 5

    如何根据Inno Setup中选择的组件设置启动程序?

  6. 6

    Inno Setup的只有特定的组件选择任务检查

  7. 7

    Inno Setup根据所选组件更改AppName

  8. 8

    如何从代码部分完全禁用Inno Setup中的特定组件?

  9. 9

    如何使用Inno Setup作为必备组件安装.NET Framework?

  10. 10

    Inno Setup:检查组件以前是否已下载

  11. 11

    Inno Setup-在“选定组件”菜单上禁用下拉列表

  12. 12

    Inno Setup-按组件定义磁盘空间

  13. 13

    Inno Setup:检查以前是否已下载组件

  14. 14

    Inno Setup-按组件定义磁盘空间

  15. 15

    Inno Setup:如果选择了其他组件,则禁止显示警告

  16. 16

    当指定/ Type命令行参数时,Inno Setup跳过“选择组件”页面

  17. 17

    使用配置文件选择要与Inno Setup一起安装的组件

  18. 18

    Inno Setup:如果选择了其他组件,则禁止显示警告

  19. 19

    Inno Setup记住当Uninstallable = no时选择的安装类型

  20. 20

    Inno Setup:自定义页面选择更新或删除/卸载

  21. 21

    Inno Setup语法-OR,AND

  22. 22

    Inno Setup中的TTreeView

  23. 23

    如果在Inno Setup中未选择任何组件,如何禁用“下一步”按钮?

  24. 24

    inno setup中的“ Not in a loop”错误

  25. 25

    未捕获Inno Setup异常

  26. 26

    如何从Inno Setup安装JRE?

  27. 27

    Inno Setup ComponentsList OnClick事件

  28. 28

    Inno Setup设置TInputQueryWizardPage高度

  29. 29

    Inno Setup从CDATA创建TStringList

热门标签

归档