В процессе создания установщика с помощью Inno Setup может возникнуть потребность в создании кастомной страницы мастера установки. В этом случае вы можете захотеть не создавать страницу с нуля, а модифицировать уже существующую, например, страницу выбора директории (TInputDirWizardPage), добавив к ней комбо-бокс. В данной статье мы рассмотрим, как это сделать.
Пошаговое руководство
Сначала определите caption, description и subcaption для вашей кастомной страницы:
const
DB_PAGE_CAPTION = 'Select Application Database Folder';
DB_PAGE_DESCRIPTION = 'Where should application database files be installed or where your database files already are?';
DB_PAGE_SUBCAPTION = 'In case of new installation select the folder in which Setup should install application database files, then click Next. Or select folder where previous version of application stored database files, then click Next';
Объявите переменные для вашей кастомной страницы и нового элемента (комбо-бокса):
var
databasePage: TInputDirWizardPage; // это предопределенная форма
CheckListBox: TNewCheckListBox; // это новый элемент, который вы хотите добавить на страницу
Создайте процедуру для создания кастомной страницы:
procedure createDatabaseWizardPage;
begin
// Создайте страницу на основе TInputDirWizardPage
databasePage := CreateInputDirPage(wpSelectDir, DB_PAGE_CAPTION, DB_PAGE_DESCRIPTION, DB_PAGE_SUBCAPTION, False, '');
// Добавьте пустую строку, чтобы оставить место для комбо-бокса
databasePage.Add('');
// Сдвиньте предопределенные элементы вниз, чтобы освободить место для комбо-бокса
databasePage.buttons[0].Top := databasePage.buttons[0].Top + ScaleY(70);
databasePage.edits[0].Top := databasePage.edits[0].Top + ScaleY(70);
// Установите默认 значение для текстового поля
databasePage.edits[0].Text := ExpandConstant('{commonappdata}\my app');
// Создайте и модифицируйте новый checklistbox (комбо-бокс)
CheckListBox := TNewCheckListBox.Create(databasePage);
CheckListBox.Top := 40 + ScaleY(8);
CheckListBox.Width := databasePage.SurfaceWidth;
CheckListBox.Height := ScaleY(50);
CheckListBox.BorderStyle := bsNone;
CheckListBox.ParentColor := True;
CheckListBox.MinItemHeight := WizardForm.TasksList.MinItemHeight;
CheckListBox.ShowLines := False;
CheckListBox.WantTabs := True;
CheckListBox.Parent := databasePage.Surface;
CheckListBox.AddRadioButton('New Installation', '', 0, True, True, nil);
CheckListBox.AddRadioButton('Update existing copy', '', 0, False, True, nil);
end;
Добавьте вызов процедуры создания кастомной страницы в процедуру InitializeWizard:
procedure InitializeWizard;
begin
createDatabaseWizardPage();
end;
Теперь у вас есть кастомная страница мастера установки с комбо-боксом, созданная на основе TInputDirWizardPage. Пользователь сможет выбрать вариант установки из комбо-бокса, а затем продолжить процесс установки, нажав кнопку "Далее".
В этом контексте описывается процесс создания кастомной страницы мастера установки Inno Setup с комбо-боксом, где пользователь может выбрать вариант установки из предложенных в комбо-боксе, а затем продолжить процесс установки, нажав кнопку 'Далее'.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.