Inno Setup remove/hide/disable 自定义向导页面上的 NextButton

Inno Setup remove/hide/disable the NextButton on a custom wizard page

我想在我的自定义向导页面中禁用 "Next" 按钮。 例如,事实是我可以毫无问题地更改它的标题,但是如果我将 NextButton.Enabled 设置为 False,Inno Setup 会显示欢迎页面而不是我的自定义页面。任何的想法?

procedure CurPageChanged(CurPageID: Integer);
begin
  WizardForm.NextButton.Caption := 'test'; { Works }
  WizardForm.NextButton.Enabled := false ; { delete my custom page }
  WizardForm.CancelButton.Caption := 'Finish';  
end;

procedure CreateTheWizardPages;
var
  Page: TWizardPage;
  TestConnectivityButton: TButton;
begin
  Page := CreateCustomPage(wpWelcome, 'Connectivity Test', '');
  CurPageChanged(Page.ID);
  TestConnectivityButton := TButton.Create(Page);
  TestConnectivityButton.Width := ScaleX(100);
  TestConnectivityButton.Height := ScaleY(30);
  TestConnectivityButton.Caption := CustomMessage('TestConnectivityAccessButtonLabel');
  TestConnectivityButton.OnClick := @TestConnectivityWindow;
  TestConnectivityButton.Parent := Page.Surface; 
 end;

procedure InitializeWizard;
begin
  CreateTheWizardPages;
end;

您必须进行更改,仅当您进入自定义页面时 – 当调用 CurPageChanged 事件函数时 CurPageID 等于 Page.ID

而且你不能给自己打电话 CurPageChanged

var
  Page: TWizardPage;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = Page.ID then
  begin
    WizardForm.NextButton.Caption := 'Test';
    WizardForm.NextButton.Enabled := False ;
    WizardForm.CancelButton.Caption := 'Finish';  
  end;
end;

procedure CreateTheWizardPages;
var
  TestConnectivityButton: TButton;
begin
  Page := CreateCustomPage(wpWelcome, 'Connectivity Test', '');
  TestConnectivityButton := TButton.Create(Page);
  TestConnectivityButton.Width := ScaleX(100);
  TestConnectivityButton.Height := ScaleY(30);
  TestConnectivityButton.Caption :=
    CustomMessage('TestConnectivityAccessButtonLabel');
  TestConnectivityButton.OnClick := @TestConnectivityWindow;
  TestConnectivityButton.Parent := Page.Surface; 
end;


另一种选择是使用 Page.OnActivate 事件而不是 CurPageChanged 事件函数。