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]
部分。
我正在尝试使用 [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]
部分。