Inno Setup 定义一个十六进制颜色常量

Inno Setup define a hexadecimal color constant

我正在尝试使用 [ISPP] 部分定义一种十六进制颜色,稍后将在 [Code] 部分中用作专色,其值将来可能会发生变化,但是 运行 时出现类型不匹配错误。以下是代码中的相关部分:

[ISPP]
#define ColorPetrol "$C8C264"

[Code]
procedure InitializeWizard();
var
  PortLabel: TNewStaticText;
begin
  PortLabel := TNewStaticText.Create(WizardForm);
  PortLabel.Caption := 'Port';
  PortLabel.Top := ScaleY(78);
  PortLabel.Parent := Page.Surface;
  PortLabel.Font.Color := ExpandConstant('{#ColorPetrol}');
end;

我假设错误是由于定义常量是一个字符串而 PortLabel.Font.Color 需要一个十六进制值。如何在 [ISPP] 部分中定义常量并以这种方式正确使用?

只需使用PortLabel.Font.Color := {#ColorPetrol};ExpandConstant() 用于扩展内置的 Inno Setup 常量,不适用于 ISPP 定义。后者实际上只是文本替换。

附带说明一下,我不知道 [ISPP] 部分。在我看来,您应该将定义移至 [Code] 部分。