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



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

procedure CurPageChanged(CurPageID: Integer);
var i: integer;
begin
if CurPageID = wpSelectComponents then
{ 0 based index }
for i:= 2 to 4 do begin
WizardForm.ComponentsList.Checked[i] := False;
end;
end;

它工作正常,它们被禁用,但窗口底部所需的总大小仍然显示所有组件的值。有没有办法更新它?

编辑:尝试更换

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

WizardForm.ComponentsList.CheckItem(i, coUncheck);

但它并没有改变任何东西。

终于找到了!支持类参考页面显示TWizardForm.ComponentsList具有属性OnClickCheck,这似乎是指向未公开TWizardForm.ComponentsListClickCheck过程的指针。我只想补充一句:

WizardForm.ComponentsList.OnClickCheck(nil);

完整示例:

procedure CurPageChanged(CurPageID: Integer);
var i: integer;
begin
if CurPageID = wpSelectComponents then begin
{ 0 based index }
for i:= 2 to 4 do begin
WizardForm.ComponentsList.CheckItem(i, coUncheck);
end;
WizardForm.ComponentsList.OnClickCheck(nil);
end;
end;

最新更新