inno-setup - 在 Inno Setup 中更改任务列表框和其他控件的背景颜色
问题描述
在 Inno Setup 中,我试图将设置的颜色更改为白色。问题是,当我尝试通过 Unicode 版本的安装程序执行此操作时,在Select Additional Task Screen中,我得到灰色部分(屏幕截图如下)。重要的是,当我移动到下一个屏幕并再次返回该屏幕时,那个灰色部分就消失了。
我正在使用以下代码,基于Inno Setup:如何更改背景颜色。
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;
解决方案
当颜色发生变化时,清单框似乎没有完全重新绘制。
但实际上你的代码太复杂了(实际上甚至不正确)。您可以直接在 中设置所有组件的颜色InitializeWizard
,而不是CurPageChanged
。这样,列表框在第一次绘制时就具有正确的颜色。
procedure InitializeWizard();
begin
WizardForm.Color := clWhite;
WizardForm.InnerPage.Color := WizardForm.Color;
WizardForm.TasksList.Color := WizardForm.Color;
WizardForm.ReadyMemo.Color := WizardForm.Color;
end;
请注意,Inno Setup 6 具有现代向导风格:
[Setup]
WizardStyle=modern
它看起来像这样:
推荐阅读
- docker - 单个服务中的默认 docker swarm 负载分配策略
- javascript - 如何控制 window.onscroll 的“this”
- python - 如何嵌套 numpy() 的 np.where,或者一个接一个?
- r - 在 r 中查找满足条件的上一个日期
- node.js - Passport facebook 登录:facebook 无法打开,isAuthenticated() false
- javascript - 迭代对象中的所有属性,查找并替换
- python - 如何在 python 中集成 Wikidata 查询
- python - BUG:如何防止敌人的血条重置?
- android - 如何刷新 RecyclerView + PagedListAdapter 并滚动到顶部?
- batch-file - 如何使用批处理文件设置PATH然后正常输入命令?