Программирование: WizardSetBackImage

Прототип

procedure WizardSetBackImage(const BackImages: TArrayOfGraphic; const Stretch, Center: Boolean; const Opacity: Byte);

Описание

Устанавливает фоновое изображение мастера. Если указано несколько изображений, будет выбрано наиболее подходящее. Если изображения не указаны, любое существующее фоновое изображение удаляется, а остальные параметры функции игнорируются.

Если параметр Stretch имеет значение True, изображение будет растянуто или сжато, если его размеры больше или меньше требуемых. Если Stretch имеет значение False, а параметр Center равен True, то изображение, меньшее по размеру, будет центрировано в окне мастера, а большее — обрезано. В противном случае изображение будет расположено в левом верхнем углу в своём исходном размере.

Рекомендуемые размеры изображений смотрите в разделе справки WizardBackImageFile.

Параметр Opacity определяет непрозрачность изображения от 0 (полностью прозрачное) до 255 (непрозрачное).

Вызывает исключение, если пользовательский фон мастера установки ещё не активирован. Активация пользовательского фона возможна с использованием директив WizardBackColor, WizardBackColorDynamicDark, WizardBackImageFile или WizardBackImageFileDynamicDark.

Чтобы отображать одно изображение в течение всего времени установки, не используйте эту функцию. Вместо этого установите WizardBackImageFile и, при желании, WizardBackImageFileDynamicDark.

Пример

[Setup]
WizardStyle=modern dynamic
WizardBackColor=#f3f3f3
WizardBackColorDynamicDark=#202020

[Files]
; Если при деинсталляции изображения не нужны, замените параметры DestDir
; флагами со следующими значениями:
; Flags: dontcopy noencryption
Source: "MyImageNormal.png"; DestDir: "{app}"
Source: "MyImageLarge.png"; DestDir: "{app}"

[Code]
; Показываем изображение только на странице установки
<event('CurStepChanged')>
procedure CurStepChanged_UpdateBackImage(CurStep: TSetupStep);
var
  PngImages: TArrayOfGraphic; 
begin
  if CurStep = ssInstall then begin
    SetLength(PngImages, 2);
    PngImages[0] := TPngImage.Create;
    PngImages[1] := TPngImage.Create;
    try
      ExtractTemporaryFile('MyImageNormal.png');
      PngImages[0].LoadFromFile(ExpandConstant('{tmp}\MyImageNormal.png'));
      ExtractTemporaryFile('MyImageLarge.png');
      PngImages[1].LoadFromFile(ExpandConstant('{tmp}\MyImageLarge.png'));
      WizardSetBackImage(PngImages, True, True, 150);
    finally
      PngImages[1].Free;
      PngImages[0].Free;
    end;
  end else if CurStep = ssPostInstall then
    WizardSetBackImage([], True, True, 150);
end;

; Показываем изображение в процессе деинсталляции
<event('InitializeUninstallProgressForm')>
procedure InitializeUninstallProgressForm_UpdateBackImage;
var
  PngImages: TArrayOfGraphic;
begin
  try
    SetLength(PngImages, 2);
    PngImages[0] := TPngImage.Create;
    PngImages[1] := TPngImage.Create;
    try
      PngImages[0].LoadFromFile(ExpandConstant('{app}\MyImageNormal.png'));
      PngImages[1].LoadFromFile(ExpandConstant('{app}\MyImageLarge.png'));
      WizardSetBackImage(PngImages, True, False, 150);
    finally
      PngImages[1].Free;
      PngImages[0].Free;
    end;
  except
    LogFmt('Could not enable background image: %s', [GetExceptionMessage]);
  end;
end; 

; См. другой пример в CodeClasses.iss.