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

标签 inno-setup pascalscript

在 Inno Setup 中,我尝试将设置的颜色更改为白色。问题是,当我尝试通过 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;

最佳答案

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

但实际上你的代码太复杂了(实际上甚至不正确)。可以直接在 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


请注意,Inno Setup 6 具有现代向导风格:

[Setup]
WizardStyle=modern

看起来像这样:

enter image description here

关于inno-setup - 在 Inno Setup 中更改任务列表框和其他控件的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52441557/

相关文章:

arrays - 如何在const中定义数组?

inno-setup - Inno Setup - 检查卸载是否以静默模式运行

inno-setup - Inno Setup - 卸载时不显示进度条

preprocessor - 如何根据默认的 Inno Setup 变量设置 ISPP 定义?

windows - 如何强制应用程序以管理员权限运行

installation - Inno Setup 驱动程序安装

inno-setup - Inno Setup 中不同的序列号具有不同的选项?

inno-setup - 我什么时候真正需要在 Inno Setup 中使用 ScaleX 和 ScaleY 函数?

inno-setup - Pascal 脚本无法从自定义 DLL 中检索宽字符串

Inno-Setup 在安装前检查文件位置,然后在安装过程中使用它