2011-10-03 68 views
1

我正在创建一个Inno安装程序包,它将安装我的应用程序使用的拼写字典。大多数人只会安装一个或几个字典,所以我有两种安装类型:完整和自定义。每个字典都是名为“Dictionaries”的组件的子组件。 (有超过20个字典文件,我只显示两个用于简洁):根据Inno Setup中的安装类型选择/取消选择组件

[Types] 
Name: Full; Description: "Install ALL dictionaries"; 
Name: Custom; Description: "Select the dictionaries to install"; Flags: IsCustom; 

[Components] 
Name: Dictionaries; Description: "Spelling dictionaries"; Types: Full; 
Name: Dictionaries\EnUK; Description: "English (UK)"; Types: Full; 
Name: Dictionaries\EnUS; Description: "English (US)"; Types: Full; 

[Files] 
Source: "E:\path\English (UK).adm"; DestDir: {app}; Components: Dictionaries\EnUK 
Source: "E:\path\English (US).adm"; DestDir: {app}; Components: Dictionaries\EnUS 

我想达到的目标:

  • 当用户选择“全部”,安装程序会自动检查所有词典。
  • 当用户选择“自定义”时,安装程​​序应该取消选择所有字典。

相反,所有字典在全模式最初选定的,他们当用户选取自定模式保持选中状态。我期望它们在后一种情况下自动取消选择,因为Custom类型没有列出任何组件。

奇怪的是,如果我在两者之间插入另一种安装类型,例如, “只有英文”,其中只包含英文字典,然后安装程序会自动取消选中该类型的其他20个文件。但是当选择自定义类型时,它仍然拒绝取消选中它们。

回答

3

这并不奇怪;这只是“自定义”类型的工作原理。事实上,这是一个非常特殊的类型,由于国旗IsCustom。如果选择此类型,安装程序将不会自动进行更改,因为根据定义,自定义类型应该让用户手动选择所有内容。您可以创建一个名为“典型”或“最小”的新类型,仅安装英文字典。

相关问题