修改Inno安装程序安装程序的颜色方案

Max*_*Max 3 background inno-setup colors

我一直在玩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
Run Code Online (Sandbox Code Playgroud)

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

mgh*_*hie 8

这四个参数在Inno Setup帮助中[Setup]部分文档的Cosmetic部分中描述.它们可以达到预期的效果,但不能用于设置向导上部区域的渐变,而是用于几年前惯用的背景窗口.这被认为是遗留的,但可以通过设置启用

[Setup]
...
WindowVisible=yes
Run Code Online (Sandbox Code Playgroud)

(默认值为no).您可以尝试使用它来查看它的运行情况,但IMO您不应该为您的安装启用此功能,除非您希望它们看起来过时.

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

procedure InitializeWizard();
begin
  WizardForm.MainPanel.Color := clYellow;
end;
Run Code Online (Sandbox Code Playgroud)

我不认为这是可能与当前的Inno Setup的版本吸取这个面板上的梯度,因为面板本身没有画布上绘制,而TPaintBox这可能类可能在正确的地方创建并用来绘制渐变不可用(请参阅文档的"支持类参考"部分中的类列表).