【问题标题】:Inno Setup remove/hide/disable the NextButton on a custom wizard pageInno Setup 删除/隐藏/禁用自定义向导页面上的 NextButton
【发布时间】:2021-08-08 03:23:55
【问题描述】:

我想禁用自定义向导页面中的“下一步”按钮。 事实上,例如我可以更改它的标题,但如果我将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;

【问题讨论】:

    标签: inno-setup pascalscript


    【解决方案1】:

    您必须进行更改,仅当您进入您的自定义页面时 – 当 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 事件函数。

    【讨论】:

      猜你喜欢
      • 2013-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多