gpt4 book ai didi

inno-setup - Inno Setup : How to use WizardForm. TasksList.InitializeWizard 中的项目?

转载 作者:行者123 更新时间:2023-12-04 16:09:47 33 4
gpt4 key购买 nike

我无法弄清楚为什么我无法在 InitializeWizard 期间操作任务复选框,但我可以使用 CurPageChanged:

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"
Name: "Option1"; Description: "Option1"

[Code]
procedure CurPageChanged(CurPageID: Integer);
var Index: Integer;
begin
if CurPageID = wpSelectTasks then
begin
Index := WizardForm.TasksList.Items.IndexOf('Option1');
if Index <> -1 then
MsgBox('Touch device checkbox found.', mbInformation, MB_OK); { THIS WORKS!! }

end;
end;

procedure InitializeWizard();
var Index: Integer;
begin
Index := WizardForm.TasksList.Items.IndexOf('Option1');
if Index <> -1 then
MsgBox('Touch device checkbox found.', mbInformation, MB_OK); { THIS DOES NOT WORK }
end;

我不能在 InitializeWizard 中使用 WizardForm.TasksList.Items 吗?我希望能够调用 WizardForm.TasksList.Checked[Index] := False; 或可能禁用它,但我宁愿在初始化时执行它,而不必避免调用代码,如果用户点击后退按钮并返回到 wpSelectTasks

最佳答案

因为任务列表是根据所选组件填充的。

因此,任务列表在InitializeWizard 中未知。然而。每当输入 wpSelectTasks 页面时,都会根据选择的组件(重新)生成任务列表。

因此,正如您所发现的,您可以使用 TasksList 的最早时刻是 CurPageChanged(wpSelectTasks) .


取消选中任务时,请确保在用户返回任务页面时不要取消选中它。实际上,您应该只在第一次访问该页面时取消选中它。

关于inno-setup - Inno Setup : How to use WizardForm. TasksList.InitializeWizard 中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44683765/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com