Inno Setup - выравнивание пользовательской кнопки с кнопкой отмены

Aug 19 2020

У меня возникли проблемы с установкой кнопки того же размера, что и кнопка « Отмена» , когда я использую WizardSizePercent = 150в этом Setupразделе.

Вот мой код:

AboutButton := TNewButton.Create(WizardForm);
AboutButton.Parent := WizardForm;
AboutButton.Left := WizardForm.CancelButton.Left;
AboutButton.Top := WizardForm.CancelButton.Top;
AboutButton.Width := WizardForm.CancelButton.Width;
AboutButton.Height := WizardForm.CancelButton.Height;

Я думаю, что Inno Setup не замечает WizardSizePercent, потому что он использует только обычный WizardFormразмер.

Ответы

1 MartinPrikryl Aug 19 2020 at 14:14

Я предполагаю, что ваш код находится в формате InitializeWizard. Эта функция события возникает до WizardSizePercentприменения. Если вы хотите, чтобы ваша кнопка правильно выравнивалась при изменении размера окна мастера из-за WizardSizePercentили WizardResizable, вам необходимо следовать их документации:

Использование Anchorsи KeepSizeYсвойства , чтобы добавить полную поддержку WizardResizableи WizardSizePercentвсех ваших пользовательских элементов управления, пользовательские страницы мастера и TSetupFormформы , если у вас есть. См. Пример скрипта CodeClasses.iss .

В частности:

AboutButton.Anchors := WizardForm.CancelButton.Anchors;

CancelButton.Anchorsесть [akRight, akBottom]. Если ваша кнопка «О программе» должна быть выровнена по левому краю, используйте:

AboutButton.Anchors := [akLeft, akBottom];