Inno Setup: отключенные переключатели TInputOptionWizardPage выглядят частично включенными (ошибка?) - PullRequest
2 голосов
/ 01 апреля 2019

У меня есть пользовательская страница в моем скрипте Inno Setup, которую я создаю, выполнив следующие действия:

var    
  installSelectPage: TInputOptionWizardPage;
  { ... }

procedure InitializeWizard;
begin
  installSelectPage :=
    CreateInputOptionPage(wpInfoBefore,
     'Select Destination Location', 'Where should {#MyAppName} be installed?',
     'Please select which {#MyGameName} distribution you want to mod',
     True, False);

  radioIndex_retailInstall := installSelectPage.Add('Retail/DVD');
  radioIndex_steamInstall := installSelectPage.Add('Steam');
  radioIndex_manualInstall := installSelectPage.Add('Manual Directory Selection')

Затем, в какой-то момент в процедуре InitializeWizard, я читаю некоторые ключи реестра и отключаю переключатели, чьи соответствующие ключи не найдены:

  if not(retailInstallAvailable) then
    installSelectPage.CheckListBox.ItemEnabled[radioIndex_retailInstall] := False;

  if not(steamInstallAvailable) then
    installSelectPage.CheckListBox.ItemEnabled[radioIndex_steamInstall] := False;

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

Bugged 'disable style' buttons

Это тонко, но если вы присмотритесь, вы заметите, как первые две радиокнопки (не их текст) по-прежнему выглядят частично включенными (и в разной степени!).

Если я затем выберу третий вариант (на этом аппарате доступен только один), нажмите и затем снова, чтобы обновить страницу, кнопки будут выглядеть правильно:

Correct'disable style' buttons

Кто-нибудь знает, что, черт возьми, делает Inno Setup и как мне заставить кнопки выглядеть полностью отключенными, пока ни одна из кнопок не выбрана?

1 Ответ

2 голосов
/ 01 апреля 2019

Я могу воспроизвести проблему.

Кажется, это происходит, когда сфокусированный предмет отключен.Фокусированный элемент по умолчанию является первым.Убедитесь, что вы установили ItemIndex на индекс (первого) включенного элемента.

installSelectPage.CheckListBox.ItemIndex := ...;
...