Inno Setup, измените WizardImageFile во время выполнения

Можно ли изменить WizardImageFile во время выполнения? Я хочу, чтобы эта картина изменилась при некоторых условиях. Не удалось изменить его в коде, {code:GetGraphics} также нельзя использовать в параметре WizardImageFile. Кто-нибудь изменил это успешно во время выполнения? Может быть, есть другой способ установить изображение WizardForm.WizardBitmapImage?

1 ответ

Решение

Следующий скрипт показывает, как условно отобразить одно из двух изображений в зависимости от того, будет ли это утро или полдень. Эти изображения включены в настройку только для этой цели и извлекаются во временный каталог, используемый установкой, когда инициализируется форма мастера. Поскольку вы пытались использовать раздел кода для изменения WizardImageFile значение директивы (что невозможно), вы собираетесь работать с WizardBitmapImage изображение WizardForm:

[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;
Другие вопросы по тегам