我想要像这样的Next按钮事件:
如果用户选中复选框(不是单选按钮),则会显示下一个按钮 被启用;否则它将被禁用。
我的代码:
if CheckBox.Checked then
WizardForm.NextButton.Enabled := True
else
WizardForm.NextButton.Enabled := False;
但这些代码需要刷新当前页面(例如,返回上一页并再次返回当前页面);否则,如果用户选中该复选框,则不会启用下一个按钮。
如何在不刷新页面的情况下执行此操作,如许可协议单选按钮(动态下一个按钮)?
答案 0 :(得分:1)
我无法理解这个功能,但据我所知,您正在寻找一种处理复选框状态更改事件的方法。这就是复选框OnClick
事件的用途。例如:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
[Code]
procedure CheckBoxClick(Sender: TObject);
begin
WizardForm.NextButton.Enabled := TNewCheckBox(Sender).Checked;
end;
procedure InitializeWizard;
var
CheckBox: TNewCheckBox;
begin
CheckBox := TNewCheckBox.Create(WizardForm);
CheckBox.Parent := WizardForm;
CheckBox.Top := WizardForm.BackButton.Top;
CheckBox.Left := 8;
CheckBox.Checked := True;
CheckBox.Caption := 'Can I continue?';
CheckBox.OnClick := @CheckBoxClick;
end;
答案 1 :(得分:0)
听起来您正在尝试实施许可页面。
Inno已经对此有所支持;只需将LicenseFile
setting设置为包含您要显示的许可证文本的本地txt或rtf文件的名称。
然后,Inno会将此文本编译到安装程序中,并显示带有“是/否”单选按钮的许可页面,并且只有在用户选择“是”选项后才允许用户继续安装。