Feature request: Create input ComboBox wizard page

58 views
Skip to first unread message

Bill Stewart

unread,
Oct 22, 2024, 5:35:47 PMOct 22
to innosetup
Something like:

TInputComboBoxWizardPage = class(TWizardPage)
  function Add(const ACaption: string): Integer;
  property SelectedValue: string;
  property SelectedValues: TArrayOfString;  // optional
  property Values[Index: Integer]: string;
  ...
end;

...

function CreateInputComboBoxPage(const AfterID: Integer;
  const ACaption,ADescription, ASubCaption: String;
  Style: TComboBoxStyle): TInputComboBoxWizardPage;

This would be a nice addition and would reduce the amount of custom code needed for those that could use a ComboBox wizard page.

Gavin Lambert

unread,
Oct 23, 2024, 7:05:55 PMOct 23
to innosetup
On Wednesday, October 23, 2024 at 10:35:47 AM UTC+13 Bill Stewart wrote:
function CreateInputComboBoxPage(const AfterID: Integer;
  const ACaption,ADescription, ASubCaption: String;
  Style: TComboBoxStyle): TInputComboBoxWizardPage;

This would be a nice addition and would reduce the amount of custom code needed for those that could use a ComboBox wizard page.

I'm not sure how useful this would be.  Your class definition seems a bit confused whether this is intended to show a single combo per page or multiple (CreateInputQueryPage and CreateInputOptionPage support multiple fields, which is why they have an Add method and Values array).

Multiple combo fields are often not entirely independent, though -- in many cases, selecting an option in one would restrict the selection in another, so you'd need to have all the custom logic anyway.

And instead of a single combo field, you can use CreateInputOptionPage with radio buttons.  (Or use multiple such pages for multiple fields, which can also help with dependent filtering.)

Bill Stewart

unread,
Oct 24, 2024, 10:17:28 AMOct 24
to innosetup
On Wednesday, October 23, 2024 at 5:05:55 PM UTC-6 Gavin Lambert wrote:

I'm not sure how useful this would be.

We can amicably agree to disagree on that :-)
 
Your class definition seems a bit confused whether this is intended to show a single combo per page or multiple (CreateInputQueryPage and CreateInputOptionPage support multiple fields, which is why they have an Add method and Values array).

Of course, what I wrote wasn't intended to be exhaustive and was just something I entered "off the top of my head," as it were.

And instead of a single combo field, you can use CreateInputOptionPage with radio buttons.  (Or use multiple such pages for multiple fields, which can also help with dependent filtering.)

Sure, but the UX is not optimal. In every user interface I have ever seen, when you have more than, say, 2 to 3 options, the usual design choice is a drop-down list rather than a long list of radio buttons.

Bill
Reply all
Reply to author
Forward
0 new messages