gpt4 book ai didi

inno-setup - Hook 标准 Inno Setup 复选框

转载 作者:行者123 更新时间:2023-12-04 13:43:46 27 4
gpt4 key购买 nike

我添加了一个 InputOptionWizardPage 来选择任务。这工作正常,但我想添加一些自定义功能。一个任务依赖于另一个任务,所以如果第二个复选框被选中,第一个应该被选中并变灰。

为此,我需要访问复选框的属性。我找到了使用完全自定义的页面来做到这一点的方法,我将自己在其中明确创建复选框,但这将是一项大量工作,因为到目前为止我所拥有的大部分内容都令人满意。

如何使用 MyInputOptionWizardPage.Add('This will add a checkbox with this caption') Hook 由 Inno Setup 创建的复选框?

最佳答案

试图直接回答你的问题。

我怀疑你用过 CreateInputOptionPage()返回 TInputOptionWizardPage
这具有您提到的 '.Add('Example')` 方法。
TInputOptionWizard下降 TWizardPage来自 TComponent它有你需要的方法。

更新:替换了原始代码,此示例基于对 ScriptClasses_C.pas 的 InnoSetup 源代码中可用选项的审查。我原来的例子我想
那个TRadioButtonTCheckBox个人控制的地方。他们取而代之的是一个名为 TNewCheckListBox 的控件。 .有几种方法可以解决这个问题,但最安全的方法是使用。

这个例子是一个完整的 Inno 安装脚本。

[Setup]
AppName='Test Date Script'
AppVerName='Test Date Script'
DefaultDirName={pf}\test
[Code]

const
cCheckBox = false;
cRadioButton = true;


var
Opt : TInputOptionWizardPage;

function BoolToStr(Value : Boolean) : String;
begin
if Value then
result := 'true'
else
result := 'false';
end;

procedure ClickEvent(Sender : TObject);
var
Msg : String;
I : Integer;
begin
// Click Event, allowing inspection of the Values.
Msg := 'The Following Items are Checked' +#10#13;
Msg := Msg + 'Values[0]=' + BoolToStr(Opt.Values[0]) +#10#13;
Msg := Msg + 'Values[1]=' + BoolToStr(Opt.Values[1]) +#10#13;
Msg := Msg + 'Values[2]=' + BoolToStr(Opt.Values[2]);

MsgBox(Msg,mbInformation,MB_OK);
end;
procedure InitializeWizard();
var
I : Integer;
ControlType : Boolean;
begin
ControlType := cCheckBox;
Opt := CreateInputOptionPage(1,'Caption','Desc','SubCaption',ControlType, false);
Opt.Add('Test1');
Opt.Add('Test2');
Opt.Add('Test3');

// Assign the Click Event.
Opt.CheckListBox.OnClickCheck := @ClickEvent;
end;

关于inno-setup - Hook 标准 Inno Setup 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5851785/

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