Inno Setup,在运行时更改WizardImageFile

时间:2013-02-23 07:58:01

标签: inno-setup

是否可以在运行时更改WizardImageFile?我希望这张照片在某些条件下有所改变。无法在代码中更改它,{code:GetGraphics}也无法在WizardImageFile参数中使用。 有没有人在运行时成功改变它?也许有另一种方法来设置WizardForm.WizardBitmapImage的图片?

1 个答案:

答案 0 :(得分:4)

以下脚本显示了如何有条件地显示两个图像中的一个,具体取决于它是上午还是下午。这些图像仅用于此目的包含在设置中,并在初始化向导表单时提取到设置使用的临时目录。由于您尝试使用代码部分更改WizardImageFile指令值(这是不可能的),因此您将使用WizardFormWizardBitmapImage图像:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: "Image1.bmp"; Flags: dontcopy
Source: "Image2.bmp"; Flags: dontcopy

[Code]
procedure InitializeWizard;
var
  FileName: string;
begin
  if StrToInt(GetDateTimeString('h', #0, #0)) < 12 then
    FileName := 'Image1.bmp'
  else
    FileName := 'Image2.bmp';

  ExtractTemporaryFile(FileName);
  WizardForm.WizardBitmapImage.Bitmap.LoadFromFile(
    ExpandConstant('{tmp}\' + FileName));
end;