Inno设置:添加按钮操作以跳至下一页

jha*_*urg 4 inno-setup

在Inno安装程序安装程序中,我需要一个单独的自定义按钮来模仿单击下一个按钮的行为,它是否可以应用于自定义按钮的OnClick处理程序来执行此操作?

TLa*_*ama 7

你可以OnClick手动触发下一个按钮的事件,例如这种方式(这里唯一的参数是Sender,它通常是触发事件的对象,但是在原始的下一个按钮点击事件处理程序中忽略了这个参数,所以让我们传递一个空的,nil对象):

WizardForm.NextButton.OnClick(nil);
Run Code Online (Sandbox Code Playgroud)

所以剩下的就是创建自己的按钮并调用上面的代码来模仿下一个按钮点击,例如:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program

[Code]
procedure MyNextButtonClick(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil);
end;

procedure InitializeWizard;
var
  MyNextButton: TNewButton;
begin
  MyNextButton := TNewButton.Create(WizardForm);
  MyNextButton.Parent := WizardForm;
  MyNextButton.Left := 10;
  MyNextButton.Top := WizardForm.NextButton.Top;
  MyNextButton.Caption := 'Click me!';
  MyNextButton.OnClick := @MyNextButtonClick;
end;
Run Code Online (Sandbox Code Playgroud)