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

时间:2015-08-30 17:31:22

标签: inno-setup

我正在尝试使用[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]部分中定义常量并以这种方式正确使用?

1 个答案:

答案 0 :(得分:2)

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

作为旁注,我不知道[ISPP]部分。 IMO你应该将定义移到[Code]部分。

相关问题