Inno setup Inno设置:以编程方式取消选中组件后更新所需大小

Inno setup Inno设置:以编程方式取消选中组件后更新所需大小,inno-setup,Inno Setup,假设我想取消选中组件3-5: 过程CurPageChanged(CurPageID:Integer); varⅠ:整数; 开始 如果CurPageID=wpSelectComponents,则 {0基索引} 对于i:=2到4,开始 WizardForm.ComponentList.Checked[i]:=False; 结束; 结束; 它工作正常,它们被禁用,但窗口底部所需的总大小仍然显示所有组件的值。有办法更新吗 编辑:尝试替换 WizardForm.ComponentsList.Checke

假设我想取消选中组件3-5:

过程CurPageChanged(CurPageID:Integer);
varⅠ:整数;
开始
如果CurPageID=wpSelectComponents,则
{0基索引}
对于i:=2到4,开始
WizardForm.ComponentList.Checked[i]:=False;
结束;
结束;
它工作正常,它们被禁用,但窗口底部所需的总大小仍然显示所有组件的值。有办法更新吗

编辑:尝试替换

WizardForm.ComponentsList.Checked[i]:=False;

但它没有改变任何事情。

终于找到了它!页面显示
TWizardForm.ComponentsList
具有属性
OnClickCheck
,该属性似乎是指向未公开过程的指针。我只需要添加一行:

WizardForm.ComponentsList.OnClickCheck(nil);
完整示例:

过程CurPageChanged(CurPageID:Integer);
varⅠ:整数;
开始
如果CurPageID=wpSelectComponents,则开始
{0基索引}
对于i:=2到4,开始
WizardForm.ComponentsList.CheckItem(i,ConCheck);
结束;
WizardForm.ComponentsList.OnClickCheck(无);
结束;
结束;
WizardForm.ComponentsList.OnClickCheck(nil);