在Inno Setup中更改任务列表框和其他控件的背景颜色

时间:2018-09-21 10:19:09

标签: inno-setup pascalscript

在Inno设置中,我试图将设置的颜色更改为白色。问题是,当我尝试通过Unicode版本的安装程序执行此操作时,在选择其他任务屏幕中,我得到的是灰色部分(下面的屏幕截图)。重要的是,当我移至下一个屏幕并再次返回该屏幕时,灰色部分消失了。

Screenshot

我正在使用基于Inno Setup: How to change background color的以下代码。

procedure CurPageChanged(CurPageID: Integer);
begin
  case CurPageID of
    wpWelcome: WizardForm.Color := WizardForm.WelcomePage.Color;
    wpFinished: WizardForm.Color := WizardForm.FinishedPage.Color;
    wpLicense: WizardForm.InnerPage.Color := clWhite;
    wpSelectDir: WizardForm.InnerPage.Color := clWhite;
    wpSelectTasks: WizardForm.TasksList.Color := clWhite;
    wpReady: WizardForm.ReadyMemo.Color := clWhite
  else
    WizardForm.Color := clWhite;
  end;
end;

1 个答案:

答案 0 :(得分:2)

当颜色改变时,清单框似乎没有完全重新绘制。

但是实际上您的代码太复杂了(实际上甚至不正确)。您可以直接在InitializeWizard中而不是CurPageChanged中设置所有组件的颜色。这样,列表框在第一次绘制时便具有正确的颜色。

procedure InitializeWizard();
begin
  WizardForm.Color := clWhite;
  WizardForm.InnerPage.Color := WizardForm.Color;
  WizardForm.TasksList.Color := WizardForm.Color; 
  WizardForm.ReadyMemo.Color := WizardForm.Color;
end;

enter image description here