Inno Setup: cómo centrar un gif animado en el asistente redimensionado
Me gustaría centrar mi gif animado justo en el medio de todas las páginas de mi instalador ( WizardSizePercent=150
) sin usar valores.
Aquí está mi código:
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;
¿Cómo tengo que cambiar los valores de ContentHeight
, Panel
y BackImage
?
Respuestas
Cree la imagen solo después de WizardSizePercentaplicar el. Por ejemplo, en el CurPageChanged, no en InitializeWizard
.
O mejor, tener una solución más robusta, que funcione, por ejemplo, incluso con WizardResizable, responda WizardForm.OnResize
actualizando las coordenadas de la imagen (o más bien las Panel
coordenadas, aunque no entiendo su propósito). Por ejemplo, consulte Establecer el ancho de control a la mitad de la página personalizada SurfaceWidth no funciona correctamente en Inno Setup .
También tenga en cuenta que no puede utilizar coordenadas constantes. Su imagen no se centraría correctamente en pantallas de alta DPI. Escale las coordenadas; para eso, verifique, por ejemplo, Inno Setup Colocando imagen / control en una página personalizada . O en su caso, sería mejor, si calcula las coordenadas centradas programáticamente en función de los tamaños de la imagen y la ventana; para eso, consulte In Inno Setup, ¿cómo centro un poco de texto en la ventana?