有没有简单的方法可以在创建自定义页面的情况下将许可证向导页面上的标准 2 个单选按钮替换为 Inno 设置中的单个(选中/未选中(复选框?
由于没有设置可以在许可证单选按钮和某些许可证复选框之间切换(至少只是因为WizardForm
上没有组件(,因此您需要自己创建它。
以下代码隐藏原始许可证单选按钮,并在向导初始化时在同一位置创建一个复选框。此许可证复选框在其OnClick
事件处理程序中模拟单选按钮选择,以保留其原始功能。下面是代码,它允许您在向导初始化事件的范围之外访问许可证复选框。如果以后不需要访问此复选框,则可以使用帖子this version
:
[code]
var
LicenseCheckBox: TNewCheckBox;
procedure OnLicenseCheckBoxClick(Sender: TObject);
var
LicenseAccepted: Boolean;
begin
LicenseAccepted := (Sender as TNewCheckBox).Checked;
WizardForm.LicenseAcceptedRadio.Checked := LicenseAccepted;
WizardForm.LicenseNotAcceptedRadio.Checked := not LicenseAccepted;
end;
procedure InitializeWizard;
begin
WizardForm.LicenseAcceptedRadio.Hide;
WizardForm.LicenseNotAcceptedRadio.Hide;
LicenseCheckBox := TNewCheckBox.Create(WizardForm);
LicenseCheckBox.Parent := WizardForm.LicensePage;
LicenseCheckBox.Left := 0;
LicenseCheckBox.Top := WizardForm.LicenseMemo.Top +
WizardForm.LicenseMemo.Height + 8;
LicenseCheckBox.Width := WizardForm.LicenseMemo.Width;
LicenseCheckBox.Caption := ' I accept the license agreement';
LicenseCheckBox.OnClick := @OnLicenseCheckBoxClick;
end;