Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You can use radio buttons (since there's no radio group component available in Inno Setup):</p> <pre class="lang-pascal prettyprint-override"><code>[Code] procedure OnTypeChange(Sender: TObject); begin { set the item index in hidden TypesCombo } WizardForm.TypesCombo.ItemIndex := TNewRadioButton(Sender).Tag; { notify TypesCombo about the selection change } WizardForm.TypesCombo.OnChange(nil); end; procedure InitializeWizard; var I: Integer; RadioButton: TNewRadioButton; begin for I := 0 to WizardForm.TypesCombo.Items.Count - 1 do begin { create radio button and set the basic properties } RadioButton := TNewRadioButton.Create(WizardForm); RadioButton.Parent := WizardForm.SelectComponentsPage; RadioButton.Left := WizardForm.TypesCombo.Left; RadioButton.Top := WizardForm.TypesCombo.Top + I * RadioButton.Height; RadioButton.Width := WizardForm.TypesCombo.Width; { check just the first item } RadioButton.Checked := I = 0; RadioButton.Caption := WizardForm.TypesCombo.Items[I]; { the Tag property substitutes the index property } RadioButton.Tag := I; RadioButton.TabOrder := I; RadioButton.OnClick := @OnTypeChange; end; { hide the TypesCombo combo box } WizardForm.TypesCombo.Visible := False; { if you're not using the "iscustom" flag in any type entry, you can remove } { the following lines, because they resize and reposition the check list box } { for component selection, which is hidden, if you don't use "iscustom" flag } I := WizardForm.ComponentsList.Top - (RadioButton.Top + RadioButton.Height + 8); WizardForm.ComponentsList.Top := RadioButton.Top + RadioButton.Height + 8; WizardForm.ComponentsList.Height := WizardForm.ComponentsList.Height + I; end; </code></pre> <p>And the result (includes the <code>iscustom</code> component list):</p> <p><img src="https://i.stack.imgur.com/Wl97a.png" alt="enter image description here"></p> <p>Or you can use e.g. check list box, which is able to contain radio buttons in Inno Setup:</p> <pre class="lang-pascal prettyprint-override"><code>[Code] procedure OnTypeChange(Sender: TObject); begin { set the item index in hidden TypesCombo } WizardForm.TypesCombo.ItemIndex := TNewCheckListBox(Sender).ItemIndex; { notify TypesCombo about the selection change } WizardForm.TypesCombo.OnChange(nil); end; procedure InitializeWizard; var I: Integer; CheckListBox: TNewCheckListBox; begin { create the TNewCheckListBox object and set the basic properties } CheckListBox := TNewCheckListBox.Create(WizardForm); CheckListBox.Parent := WizardForm.SelectComponentsPage; CheckListBox.Left := WizardForm.TypesCombo.Left; CheckListBox.Top := WizardForm.TypesCombo.Top; CheckListBox.Width := WizardForm.TypesCombo.Width; CheckListBox.Height := CheckListBox.MinItemHeight * WizardForm.TypesCombo.Items.Count + 4; CheckListBox.TabOrder := 0; { assign the selection change event } CheckListBox.OnClickCheck := @OnTypeChange; { add radio buttons from all TypesCombo items, select the first item } for I := 0 to WizardForm.TypesCombo.Items.Count - 1 do CheckListBox.AddRadioButton(WizardForm.TypesCombo.Items[I], '', 0, I = 0, True, nil); { hide the TypesCombo combo box } WizardForm.TypesCombo.Visible := False; { if you're not using the "iscustom" flag in any type entry, you can remove } { the following lines, because they resize and reposition the check list box } { for component selection, which is hidden, if you don't use "iscustom" flag } I := WizardForm.ComponentsList.Top - (CheckListBox.Top + CheckListBox.Height + 8); WizardForm.ComponentsList.Top := CheckListBox.Top + CheckListBox.Height + 8; WizardForm.ComponentsList.Height := WizardForm.ComponentsList.Height + I; end; </code></pre> <p>And the result (includes the <code>iscustom</code> component list):</p> <p><img src="https://i.stack.imgur.com/7mqZW.png" alt="enter image description here"></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload