Inno Setupでカスタムページのラジオコントロールを2つの異なるグループにするにはどうすればよいですか?

アンドリュー・トラックル

私のアプリケーションには、次の設定ウィンドウがあります。

設定

私は、このウィンドウをInno SetupInstallerで可能な限り複製することを考えました。

現時点では、次のコードがあります。

procedure pageAutoBackup_Create;
var
    { Controls }
    pageAutoBackup: TWizardPage;
    btnSelectBackupFolder: TNewButton;
    textBackupFolder: TNewEdit;
    lblWhereToBackup: TLabel;
    lblPromptMode: TLabel;
    comboPromptMode: TNewComboBox;
    lblReminder: TLabel;
    radioBackupModeManual: TNewRadioButton;
    radioBackupModeAuto: TNewRadioButton;
    lblHowToBackup: TLabel;
    radioBackupHowEssential: TNewRadioButton;
    radioBackupHowComplete: TNewRadioButton;
    radioBackupHowNone: TNewRadioButton;
    lblWhatToBackup: TLabel;
begin
    pageAutoBackup := CreateCustomPage(wpSelectComponents, 'Automatic Backup', 'Configure automatic backup settings.');

    { lblWhatToBackup (TLabel) }
    lblWhatToBackup := TLabel.Create(pageAutoBackup);
    lblWhatToBackup.Parent := pageAutoBackup.Surface;
    lblWhatToBackup.Enabled := True;
    lblWhatToBackup.Visible := True;
    lblWhatToBackup.Left := ScaleX(0);
    lblWhatToBackup.Top := ScaleY(10);
    lblWhatToBackup.Width := ScaleX(100);
    lblWhatToBackup.Height := ScaleY(17);
    lblWhatToBackup.Font.Color := $000000;
    lblWhatToBackup.Color := $F0F0F0;
    lblWhatToBackup.Caption := 'What to backup:';

    { radioBackupHowNone (TNewRadioButton) }
    radioBackupHowNone := TNewRadioButton.Create(pageAutoBackup);
    radioBackupHowNone.Parent := pageAutoBackup.Surface;
    radioBackupHowNone.Enabled := True;
    radioBackupHowNone.Visible := True;
    radioBackupHowNone.Left := ScaleX(10);
    radioBackupHowNone.Top := ScaleY(30);
    radioBackupHowNone.Width := ScaleX(476);
    radioBackupHowNone.Height := ScaleY(18);
    radioBackupHowNone.Checked := False;
    radioBackupHowNone.Font.Color := $000000;
    radioBackupHowNone.Color := $F0F0F0;
    radioBackupHowNone.Caption := 'Don''t perform any backup when the program shuts down';

    { radioBackupHowComplete (TNewRadioButton) }
    radioBackupHowComplete := TNewRadioButton.Create(pageAutoBackup);
    radioBackupHowComplete.Parent := pageAutoBackup.Surface;
    radioBackupHowComplete.Enabled := True;
    radioBackupHowComplete.Visible := True;
    radioBackupHowComplete.Left := ScaleX(10);
    radioBackupHowComplete.Top := ScaleY(54);
    radioBackupHowComplete.Width := ScaleX(478);
    radioBackupHowComplete.Height := ScaleY(19);
    radioBackupHowComplete.Checked := False;
    radioBackupHowComplete.Font.Color := $000000;
    radioBackupHowComplete.Color := $F0F0F0;
    radioBackupHowComplete.Caption := 'Make a complete backup when the program shuts down';

    { radioBackupHowEssential (TNewRadioButton) }
    radioBackupHowEssential := TNewRadioButton.Create(pageAutoBackup);
    radioBackupHowEssential.Parent := pageAutoBackup.Surface;
    radioBackupHowEssential.Enabled := True;
    radioBackupHowEssential.Visible := True;
    radioBackupHowEssential.Left := ScaleX(10);
    radioBackupHowEssential.Top := ScaleY(78);
    radioBackupHowEssential.Width := ScaleX(472);
    radioBackupHowEssential.Height := ScaleY(18);
    radioBackupHowEssential.Checked := False;
    radioBackupHowEssential.Font.Color := $000000;
    radioBackupHowEssential.Color := $F0F0F0;
    radioBackupHowEssential.Caption := 'Only make an essential backup when the program shuts down';

    { lblHowToBackup (TLabel) }
    lblHowToBackup := TLabel.Create(pageAutoBackup);
    lblHowToBackup.Parent := pageAutoBackup.Surface;
    lblHowToBackup.Enabled := True;
    lblHowToBackup.Visible := True;
    lblHowToBackup.Left := ScaleX(0);
    lblHowToBackup.Top := ScaleY(110);
    lblHowToBackup.Width := ScaleX(100);
    lblHowToBackup.Height := ScaleY(17);
    lblHowToBackup.Font.Color := $000000;
    lblHowToBackup.Color := $F0F0F0;
    lblHowToBackup.Caption := 'How to backup:';

    { radioBackupModeAuto (TNewRadioButton) }
    radioBackupModeAuto := TNewRadioButton.Create(pageAutoBackup);
    radioBackupModeAuto.Parent := pageAutoBackup.Surface;
    radioBackupModeAuto.Enabled := True;
    radioBackupModeAuto.Visible := True;
    radioBackupModeAuto.Left := ScaleX(10);
    radioBackupModeAuto.Top := ScaleY(129);
    radioBackupModeAuto.Width := ScaleX(481);
    radioBackupModeAuto.Height := ScaleY(20);
    radioBackupModeAuto.Checked := False;
    radioBackupModeAuto.Font.Color := $000000;
    radioBackupModeAuto.Color := $F0F0F0;
    radioBackupModeAuto.Caption := 'Perform automatically when the program is shut down';

    { radioBackupModeManual (TNewRadioButton) }
    radioBackupModeManual := TNewRadioButton.Create(pageAutoBackup);
    radioBackupModeManual.Parent := pageAutoBackup.Surface;
    radioBackupModeManual.Enabled := True;
    radioBackupModeManual.Visible := True;
    radioBackupModeManual.Left := ScaleX(10);
    radioBackupModeManual.Top := ScaleY(155);
    radioBackupModeManual.Width := ScaleX(479);
    radioBackupModeManual.Height := ScaleY(19);
    radioBackupModeManual.Checked := False;
    radioBackupModeManual.Font.Color := $000000;
    radioBackupModeManual.Color := $F0F0F0;
    radioBackupModeManual.Caption := 'Prompt the user when the program is shut down';

    { lblPromptMode (TLabel) }
    lblPromptMode := TLabel.Create(pageAutoBackup);
    lblPromptMode.Parent := pageAutoBackup.Surface;
    lblPromptMode.Enabled := True;
    lblPromptMode.Visible := True;
    lblPromptMode.Left := ScaleX(10);
    lblPromptMode.Top := ScaleY(190);
    lblPromptMode.Width := ScaleX(482);
    lblPromptMode.Height := ScaleY(19);
    lblPromptMode.Font.Color := $000000;
    lblPromptMode.Color := $F0F0F0;
    lblPromptMode.Caption := 'Also prompt to backup at the following intervals while the application is running:';

    { comboPromptMode (TNewComboBox) }
    comboPromptMode := TNewComboBox.Create(pageAutoBackup);
    comboPromptMode.Parent := pageAutoBackup.Surface;
    comboPromptMode.Enabled := True;
    comboPromptMode.Visible := True;
    comboPromptMode.Left := ScaleX(10);
    comboPromptMode.Top := ScaleY(207);
    comboPromptMode.Width := ScaleX(483);
    comboPromptMode.Height := ScaleY(21);
    comboPromptMode.Font.Color := $000000;
    comboPromptMode.ItemIndex := 0;
    comboPromptMode.Color := $FFFFFF;
    comboPromptMode.Items.Add('Never prompt to backup');
    comboPromptMode.Items.Add('Prompt to backup everyday');
    comboPromptMode.Items.Add('Prompt to backup once a week');
    comboPromptMode.Items.Add('Prompt to backup once a month');
    comboPromptMode.Items.Add('');

    { lblReminder (TLabel) }
    lblReminder := TLabel.Create(pageAutoBackup);
    lblReminder.Parent := pageAutoBackup.Surface;
    lblReminder.Enabled := True;
    lblReminder.Visible := True;
    lblReminder.Left := ScaleX(20);
    lblReminder.Top := ScaleY(236);
    lblReminder.Width := ScaleX(481);
    lblReminder.Height := ScaleY(23);
    lblReminder.Font.Color := $000000;
    lblReminder.Color := $F0F0F0;
    lblReminder.Caption := '(You should restart the application atleast once a week to let it perform database maintenance)';

    { lblWhereToBackup (TLabel) }
    lblWhereToBackup := TLabel.Create(pageAutoBackup);
    lblWhereToBackup.Parent := pageAutoBackup.Surface;
    lblWhereToBackup.Enabled := True;
    lblWhereToBackup.Visible := True;
    lblWhereToBackup.Left := ScaleX(0);
    lblWhereToBackup.Top := ScaleY(269);
    lblWhereToBackup.Width := ScaleX(100);
    lblWhereToBackup.Height := ScaleY(15);
    lblWhereToBackup.Font.Color := $000000;
    lblWhereToBackup.Color := $F0F0F0;
    lblWhereToBackup.Caption := 'Where to backup:';

    { textBackupFolder (TNewEdit) }
    textBackupFolder := TNewEdit.Create(pageAutoBackup);
    textBackupFolder.Parent := pageAutoBackup.Surface;
    textBackupFolder.Enabled := True;
    textBackupFolder.Visible := True;
    textBackupFolder.Left := ScaleX(10);
    textBackupFolder.Top := ScaleY(286);
    textBackupFolder.Width := ScaleX(400);
    textBackupFolder.Height := ScaleY(20);
    textBackupFolder.Font.Color := $000000;
    textBackupFolder.Color := $F0F0F0;

    { btnSelectBackupFolder (TNewButton) }
    btnSelectBackupFolder := TNewButton.Create(pageAutoBackup);
    btnSelectBackupFolder.Parent := pageAutoBackup.Surface;
    btnSelectBackupFolder.Enabled := True;
    btnSelectBackupFolder.Visible := True;
    btnSelectBackupFolder.Left := ScaleX(425);
    btnSelectBackupFolder.Top := ScaleY(286);
    btnSelectBackupFolder.Width := ScaleX(75);
    btnSelectBackupFolder.Height := ScaleY(23);
    btnSelectBackupFolder.Caption := 'Browse ...';

end;

そして、これはそれがどのように見えるかです:

バックアップ設定-Inno

私の最初の質問は:

私には2つの無線グループがあります。

  • バックアップするもの
  • バックアップする方法

現在、私のラジオコントロールは1つの大きなグループとして機能しています。2つの異なるラジオグループモードにするにはどうすればよいですか?

マルティン・プリクリル

Windowsでは、同じコンテナコントロールを持つラジオボタンは同じグループに属します。

個別のグループが必要な場合は、個別のコンテナコントロールにラジオボタンを配置する必要があります。アプリケーションでは、それらを異なるグループボックスに配置することでそれを解決します。

残念ながら、グループボックスはInnoSetupではサポートされていません。

代わりに、TPanelcontrolを使用できます完全にシームレスにレンダリングするように構成できます。

Panel := TPanel.Create(WizardForm);
Panel.Caption := '';
Panel.BevelOuter := bvNone;
Panel.BevelInner := bvNone; { default }
Panel.BevelKind := bkNone;

ラジオボタンを別々のパネルに配置した場合でも、カスタムページはまったく同じように表示されます。


別のオプションはTNewCheckListBox、そので使用することAddGroupです。

PageAutoBackup := CreateCustomPage(...);

CheckListBox := TNewCheckListBox.Create(WizardForm);

CheckListBox.Parent := PageAutoBackup.Surface;
CheckListBox.Top := WizardForm.SelectTasksLabel.Top;
CheckListBox.Width := WizardForm.TasksList.Width;
CheckListBox.Left := WizardForm.TasksList.Left;
CheckListBox.Height :=
  WizardForm.TasksList.Top + WizardForm.TasksList.Height - CheckListBox.Top;

CheckListBox.WantTabs := True;
CheckListBox.Color := clBtnFace;
CheckListBox.BorderStyle := bsNone;

CheckListBox.AddGroup('What to backup:', '', 0, nil);
CheckListBox.AddRadioButton(
  'Don''t perform any backup when the program shuts down', '', 0, False, True, nil);
CheckListBox.AddRadioButton(
  'Make a complete backup when the program shuts down', '', 0, False, True, nil);
CheckListBox.AddRadioButton(
  'Only make an essential backup when the program shuts down', '', 0, False, True, nil);

CheckListBox.AddGroup('How to backup:', '', 0, nil);
CheckListBox.AddRadioButton(
  'Perform automatically when the program is shut down', '', 0, False, True, nil);
CheckListBox.AddRadioButton(
  'Prompt the user when the program is shut down', '', 0, False, True, nil);

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パラメータを介して外部インストーラのウェルカムページを非表示にし、Inno Setupのコンポーネントページに直接移動するにはどうすればよいですか?

分類Dev

カスタムウィザードページからの情報を使用して、Inno Setupにインストールフォルダーを動的に設定させるにはどうすればよいですか?

分類Dev

Inno SetupインストールファイルのVersionInfoをローカライズするにはどうすればよいですか?

分類Dev

.net v3.5 SP1のMSチャートコントロールがインストールされているかどうかをプログラムで識別するにはどうすればよいですか(Inno Setupスクリプトに含めるため)?

分類Dev

Inno Setupで、「コンポーネントの選択」ページで最初にフォーカスを取得するコンポーネントを設定するにはどうすればよいですか。

分類Dev

Inno Setupインストーラーからグローバル環境変数を設定するにはどうすればよいですか?

分類Dev

Inno Setupで作成したインストーラーで「プログラムと機能」のリストに指定したアイコンを表示するにはどうすればよいですか?

分類Dev

Inno SetupのWindowsバージョンに応じて、アンインストーラーにショートカットを追加/追加しないようにするにはどうすればよいですか?

分類Dev

Inno Setup で 2 つのカスタム ページを追加する方法は?

分類Dev

Inno Setupでファイルの関連付けのカスタムアイコンを参照するにはどうすればよいですか?

分類Dev

Inno SetupからJREをインストールするにはどうすればよいですか?

分類Dev

Inno Setupで実行ファイルのリターンコードから終了コードを設定するにはどうすればよいですか?

分類Dev

Inno SetupでDLLベースのフォームにVCLスタイルを適用するにはどうすればよいですか?

分類Dev

Inno Setupでインストーラーを最小化するにはどうすればよいですか?

分類Dev

Inno Setupでエラーメッセージを変更するにはどうすればよいですか?

分類Dev

Inno SetupインストーラーのNuGetパッケージから実行時のみの依存関係をバンドルするにはどうすればよいですか?

分類Dev

Inno Setup:Select Destination Locationページに複数のディレクトリを指定するにはどうすればよいですか?

分類Dev

Inno Setupでカスタムページのラジオボタンがチェックされないのはなぜですか?

分類Dev

Inno Setup - カスタム アンインストール ページに新しいアンインストール ページを作成する方法は?

分類Dev

Inno Setup:プロシージャInitializeWizard();からカスタムページが表示される前にライセンスページを表示する方法。

分類Dev

Inno Setupを使用してTreeviewデザイン(タスクがネストされた階層を持つタスクグループ)を構築するにはどうすればよいですか?

分類Dev

Inno Setupのカスタムページキャンバス領域のデフォルトサイズはどれくらいですか?

分類Dev

リスタートマネージャーを使用して、Inno Setupアンインストールでexplorer.exeを閉じてから再起動するにはどうすればよいですか?

分類Dev

Inno Setupでアンインストール時にバッチファイルを実行するにはどうすればよいですか?

分類Dev

インストールする前に、プログラムがすでに実行されているかどうかを確認することはできますか?(Inno Setup)

分類Dev

Inno Setup-解凍するファイルを見つけることができるカスタムフォームを作成するにはどうすればよいですか?

分類Dev

Inno Setupは、インストール後のカスタムページからレジストリにユーザー入力を保存しますか?

分類Dev

ウィンドウが可能な限り最小にサイズ変更されると、TLabelコントロールがカスタムページでトリミングされます(Inno Setupで)

分類Dev

Inno SetupでDLLベースのフォームにVCLスタイルを適用するにはどうすればよいですか?新しいスタイルは読み込まれません

Related 関連記事

  1. 1

    パラメータを介して外部インストーラのウェルカムページを非表示にし、Inno Setupのコンポーネントページに直接移動するにはどうすればよいですか?

  2. 2

    カスタムウィザードページからの情報を使用して、Inno Setupにインストールフォルダーを動的に設定させるにはどうすればよいですか?

  3. 3

    Inno SetupインストールファイルのVersionInfoをローカライズするにはどうすればよいですか?

  4. 4

    .net v3.5 SP1のMSチャートコントロールがインストールされているかどうかをプログラムで識別するにはどうすればよいですか(Inno Setupスクリプトに含めるため)?

  5. 5

    Inno Setupで、「コンポーネントの選択」ページで最初にフォーカスを取得するコンポーネントを設定するにはどうすればよいですか。

  6. 6

    Inno Setupインストーラーからグローバル環境変数を設定するにはどうすればよいですか?

  7. 7

    Inno Setupで作成したインストーラーで「プログラムと機能」のリストに指定したアイコンを表示するにはどうすればよいですか?

  8. 8

    Inno SetupのWindowsバージョンに応じて、アンインストーラーにショートカットを追加/追加しないようにするにはどうすればよいですか?

  9. 9

    Inno Setup で 2 つのカスタム ページを追加する方法は?

  10. 10

    Inno Setupでファイルの関連付けのカスタムアイコンを参照するにはどうすればよいですか?

  11. 11

    Inno SetupからJREをインストールするにはどうすればよいですか?

  12. 12

    Inno Setupで実行ファイルのリターンコードから終了コードを設定するにはどうすればよいですか?

  13. 13

    Inno SetupでDLLベースのフォームにVCLスタイルを適用するにはどうすればよいですか?

  14. 14

    Inno Setupでインストーラーを最小化するにはどうすればよいですか?

  15. 15

    Inno Setupでエラーメッセージを変更するにはどうすればよいですか?

  16. 16

    Inno SetupインストーラーのNuGetパッケージから実行時のみの依存関係をバンドルするにはどうすればよいですか?

  17. 17

    Inno Setup:Select Destination Locationページに複数のディレクトリを指定するにはどうすればよいですか?

  18. 18

    Inno Setupでカスタムページのラジオボタンがチェックされないのはなぜですか?

  19. 19

    Inno Setup - カスタム アンインストール ページに新しいアンインストール ページを作成する方法は?

  20. 20

    Inno Setup:プロシージャInitializeWizard();からカスタムページが表示される前にライセンスページを表示する方法。

  21. 21

    Inno Setupを使用してTreeviewデザイン(タスクがネストされた階層を持つタスクグループ)を構築するにはどうすればよいですか?

  22. 22

    Inno Setupのカスタムページキャンバス領域のデフォルトサイズはどれくらいですか?

  23. 23

    リスタートマネージャーを使用して、Inno Setupアンインストールでexplorer.exeを閉じてから再起動するにはどうすればよいですか?

  24. 24

    Inno Setupでアンインストール時にバッチファイルを実行するにはどうすればよいですか?

  25. 25

    インストールする前に、プログラムがすでに実行されているかどうかを確認することはできますか?(Inno Setup)

  26. 26

    Inno Setup-解凍するファイルを見つけることができるカスタムフォームを作成するにはどうすればよいですか?

  27. 27

    Inno Setupは、インストール後のカスタムページからレジストリにユーザー入力を保存しますか?

  28. 28

    ウィンドウが可能な限り最小にサイズ変更されると、TLabelコントロールがカスタムページでトリミングされます(Inno Setupで)

  29. 29

    Inno SetupでDLLベースのフォームにVCLスタイルを適用するにはどうすればよいですか?新しいスタイルは読み込まれません

ホットタグ

アーカイブ