2

カスタム ページを作成せずに、ライセンス ウィザード ページの標準の 2 つのラジオ ボタンを Inno Setup の 1 つの (チェックされている/チェックされていない) チェック ボックスに置き換える簡単な方法はありますか?

4

1 に答える 1

7

ライセンス ラジオ ボタンと一部のライセンス チェック ボックスを切り替える設定がないため (少なくとも にコンポーネントがないため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;
于 2012-05-21T14:46:45.270 に答える