Замена переключателей флажком на странице мастера лицензий в программе установки Inno


Есть ли простой способ заменить стандартные 2 переключателя на странице мастера лицензий на один (установлен/снят) флажок в настройках Inno без создания пользовательской страницы?

1 2

1 ответ:

Поскольку нет никаких настроек для переключения между переключателями лицензий и некоторыми флажками лицензий (по крайней мере, просто потому, что для этого нет компонента на WizardForm), вам нужно создать его самостоятельно.

Следующий код скрывает исходные лицензионные переключатели и создает флажок на том же месте при инициализации мастера. Этот флажок лицензии имитирует выбор переключателей в обработчике событий OnClick, чтобы сохранить их исходную функциональность. Вот код:, что позволяет получить доступ к флажку лицензия вне области действия события инициализации мастера. Если вам не нужно будет обращаться к этому флажку позже, вы можете использовать this version о должности:

[code]

var
  LicenseCheckBox: TNewCheckBox;

procedure OnLicenseCheckBoxClick(Sender: TObject);
var
  LicenseAccepted: Boolean;
begin
  LicenseAccepted := (Sender as TNewCheckBox).Checked;
  WizardForm.LicenseAcceptedRadio.Checked := LicenseAccepted;
  WizardForm.LicenseNotAcceptedRadio.Checked := not LicenseAccepted;
end;

procedure InitializeWizard;
begin
  WizardForm.LicenseAcceptedRadio.Hide;
  WizardForm.LicenseNotAcceptedRadio.Hide;

  LicenseCheckBox := TNewCheckBox.Create(WizardForm);
  LicenseCheckBox.Parent := WizardForm.LicensePage;
  LicenseCheckBox.Left := 0;
  LicenseCheckBox.Top := WizardForm.LicenseMemo.Top + 
    WizardForm.LicenseMemo.Height + 8;
  LicenseCheckBox.Width := WizardForm.LicenseMemo.Width;
  LicenseCheckBox.Caption := ' I accept the license agreement';
  LicenseCheckBox.OnClick := @OnLicenseCheckBoxClick;
end;