Inno Setup удалить / скрыть / отключить NextButton на пользовательской странице мастера - PullRequest
0 голосов
/ 19 декабря 2018

Я бы хотел отключить кнопку «Далее» на моей странице мастера.Дело в том, что у меня нет проблем с изменением заголовка, например, но если я установлю 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;

1 Ответ

0 голосов
/ 19 декабря 2018

Вы должны внести изменения, когда вы входите только на свою пользовательскую страницу - Когда 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;

enter image description here


Другой вариант - использование события Page.OnActivateвместо CurPageChanged функция события.

...