我想将我的动画gif放在安装程序(WizardSizePercent=150
(中所有页面的中间,而不使用值。
这是我的代码:
var
ParentForm: TSetupForm;
begin
TimerID := 0;
SlideID := 0;
ContentHeight := ParentForm.Top + ParentForm.Height;
ExtractTemporaryFile('Image1.bmp');
ExtractTemporaryFile('Image2.bmp');
ExtractTemporaryFile('Image3.bmp');
ExtractTemporaryFile('Image4.bmp');
ExtractTemporaryFile('Image5.bmp');
ExtractTemporaryFile('Image6.bmp');
Panel := TPanel.Create(ParentForm);
Panel.Parent := ParentForm;
Panel.Left := 185;
Panel.Top := ParentForm.Top + 130;
Panel.Width := 1000;
Panel.Height := 380;
Panel.Visible := True;
BackImage := TBitmapImage.Create(ParentForm);
BackImage.Parent := Panel;
BackImage.Width:= 1000;
BackImage.Height:= 380;
BackImage.Left := (Panel.Height - BackImage.Height) div 2;
BackImage.Top := (Panel.Height - BackImage.Height) div 2;
BackImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}Image1.bmp'));
StartSlideTimer;
end;
如何更改ContentHeight
、Panel
和BackImage
的值?
WizardSizePercent
(由WizardStyle=modern
显式和隐式(仅在InitializeWizard
之后应用。因此,明确定位在InitializeWizard
中的控件之后可能会错位。
仅在应用WizardSizePercent
之后定位图像。因此,例如在CurPageChanged
中,而不是在InitializeWizard
中。
或者更好的是,为了有一个更稳健的解决方案,即使使用WizardResizable
,也可以通过更新图像坐标(或者更确切地说是Panel
坐标——尽管我不理解它的用途(来响应WizardForm.OnResize
。例如,请参阅将控件宽度设置为自定义页面SurfaceWidth的一半在Inno Setup中无法正常工作。
在许多情况下,还可以使用Anchors
属性使控件自动调整大小。例如,请参见Inno Setup-将自定义按钮与Cancel按钮对齐。
请注意,不能使用常量坐标。您的图像在高DPI显示器上无法正确居中。缩放坐标——例如,在自定义页面上放置图像/控件的Inno设置。或者,在您的情况下,如果您根据图像和窗口大小以编程方式计算居中坐标,效果会更好——为此,请检查in Inno Setup,我如何在窗口中居中一些文本?