3

我一直在玩 Inno Setup 5.3.6;试图自定义安装程序的颜色。主要是出现在安装程序头部的横幅。但到目前为止,我还没有找到一种轻松做到这一点的方法。

通读文档后,我发现了 BackColor、BackColor2、BackColorDirection 和 BackSolid 参数。但是给他们不同的价值至今还没有给我任何视觉上的改变。

我正在尝试做的快速示例

[Setup]
AppName=My Program
AppVerName=My Program version 1.4
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

BackColor=$E6B13A
BackColor2=$E5B13A
BackSolid=no
BackColorDirection=lefttoright

我想知道的是,有谁知道 BackColor 和 BackColor2 实际修改了什么颜色?如果没有简单的方法来改变颜色;有没有办法使用 [Code] 段以编程方式修改上部横幅颜色渐变?

4

2 回答 2

8

这四个参数在 Inno Setup 帮助中[Setup]部分的文档的Cosmetic部分中进行了描述。它们会按照您的预期进行,但不是针对设置向导上部区域的渐变,而是针对几年前习惯的背景窗口。这被认为是遗留的,但可以通过设置启用

[Setup]
...
WindowVisible=yes

(默认值为no)。您可以尝试使用它来查看它的实际效果,但 IMO 您不应该为您的安装启用此功能,除非您希望它们看起来相当过时。

至于向导的顶部区域:它并不意味着有渐变。如果你使用 Spy++ 之类的工具来检查向导的窗口层次结构,或者从 Inno Setup 源中打开Wizard.dfm.txt文本文件,你会发现有一个TPanel颜色设置为默认的类的窗口窗口颜色(clWindow如果你知道 Delphi,或者GetSysColor()使用COLOR_WINDOW常量调用的结果)。这是一种纯色,您可以通过将其添加到[代码]部分来轻松更改:

procedure InitializeWizard();
begin
  WizardForm.MainPanel.Color := clYellow;
end;

我认为当前的 Inno Setup 版本不可能在此面板上绘制渐变,因为面板本身没有可绘制的画布,并且可以TPaintBox在正确的位置创建并用于绘制的类渐变不可用(请参阅文档的“支持类参考”部分中的类列表)。

于 2009-11-27T22:07:05.213 回答
4

这是一个老问题,但有人可能会像我一样在这里绊倒。更改 inno 设置配色方案最优雅的方法是使用名为ISSkin的第 3 方工具

于 2010-07-23T20:14:07.783 回答