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;