为一组任务添加“全部选中/取消全选”复选框?

时间:2014-10-07 19:40:57

标签: installer install inno-setup pascal pascalscript

我制作了一个包含4个任务组的安装程序,每个组都有30-40个可疑任务,手动取消选中所有任务有点疯狂,我不想设置Component因为意图可以自由选择选择/选中/取消选中你想在安装程序中执行的任何任务,我认为Component对于这个安装程序来说可能是一个糟糕的方法。

然后,我想知道是否可以在每个任务组的顶部添加一个标题为“全部检查”的复选框,该复选框将检查或取消选中该任务内的所有任务-gruop,并且该复选框将名称替换为“取消选中所有”以执行相反的操作。

我怎么能这样做?,使用pascal代码是必要的吗?

1 个答案:

答案 0 :(得分:2)

一种方法是构建任务层次结构,可以通过编写由\或{{1}分隔的任务条目的Name参数构建的路径来完成chars。这在Name参数文档中非常隐藏:

  

任务名称中的\或/字符总数为   称为任务的级别。任何级别为1或更高的任务都是a   儿童任务。在子任务之前列出的任务,级别为1   少于子任务,是父任务。其他任务与   与子任务相同的父任务是兄弟任务。

例如,要创建父,子和子的层次结构,您可以写:

/

任务页面将产生这个:

enter image description here

默认情况下,在层次结构中构建的任务会继承检查状态(除非您为子任务条目指定dontinheritcheck标志),因此为了您的总体目标,您可以编写如下内容:

[Tasks]
Name: parent; Description: "Parent task"; Flags: unchecked
Name: parent\child; Description: "Child task"; Flags: unchecked
Name: parent\child\subchild; Description: "Subchild task"; Flags: unchecked

任务页面将产生这个:

enter image description here