Управление отображением многострочного содержимого в установщике inno setup

Я хочу показать содержимое, как показано на рисунке ниже, на этапе установки установщика... Я использовал memo для показа содержимого... но memo не подходит для управления.. тогда он выглядит как текстовое поле, если пользователь ставит фокус в поле memo... см. ниже изображение.. когда пользователь подходит к этому шагу, выбирается первое поле memo... installation type

Ответ 1

Используйте TLabel или TNewStaticText компонент (TNewStaticText кажется предпочтительным внутри InnoSetup) и установить его следующим образом:

  • свойство WordWrap для True
  • свойство AutoSize для False

Затем просто растяните компоненты в нужные позиции, и текст будет соответствовать этим границам, как показано в этом примере:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program

[Code]    
const
  LoremIpsum =
    'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin mauris ' +
    'lorem, ullamcorper sit amet tincidunt ac, varius at ante. Aenean pretium, ' +
    'tortor non congue pharetra, ante urna consectetur mi, vitae congue arcu est ' +
    'eleifend nisl.';

procedure InitializeWizard;
var
  CustomPage: TWizardPage;
  StandardDescLabel: TLabel;
  StandardRadioButton: TNewRadioButton;
  AdvancedDescLabel: TLabel;
  AdvancedRadioButton: TNewRadioButton;
begin
  CustomPage := CreateCustomPage(wpWelcome, 'Installation type', '');
  StandardRadioButton := TNewRadioButton.Create(WizardForm);
  StandardRadioButton.Parent := CustomPage.Surface;
  StandardRadioButton.Checked := True;
  StandardRadioButton.Top := 16;
  StandardRadioButton.Width := CustomPage.SurfaceWidth;
  StandardRadioButton.Font.Style := [fsBold];
  StandardRadioButton.Font.Size := 9;
  StandardRadioButton.Caption := 'Standard Installation'
  StandardDescLabel := TLabel.Create(WizardForm);
  StandardDescLabel.Parent := CustomPage.Surface;
  StandardDescLabel.Left := 8;
  StandardDescLabel.Top := StandardRadioButton.Top + StandardRadioButton.Height + 8;
  StandardDescLabel.Width := CustomPage.SurfaceWidth; 
  StandardDescLabel.Height := 40;
  StandardDescLabel.AutoSize := False;
  StandardDescLabel.Wordwrap := True;
  StandardDescLabel.Caption := LoremIpsum;
  AdvancedRadioButton := TNewRadioButton.Create(WizardForm);
  AdvancedRadioButton.Parent := CustomPage.Surface;
  AdvancedRadioButton.Top := StandardDescLabel.Top + StandardDescLabel.Height + 16;
  AdvancedRadioButton.Width := CustomPage.SurfaceWidth;
  AdvancedRadioButton.Font.Style := [fsBold];
  AdvancedRadioButton.Font.Size := 9;
  AdvancedRadioButton.Caption := 'Advanced Installation'
  AdvancedDescLabel := TLabel.Create(WizardForm);
  AdvancedDescLabel.Parent := CustomPage.Surface;
  AdvancedDescLabel.Left := 8;
  AdvancedDescLabel.Top := AdvancedRadioButton.Top + AdvancedRadioButton.Height + 8;
  AdvancedDescLabel.Width := CustomPage.SurfaceWidth;
  AdvancedDescLabel.Height := 40;
  AdvancedDescLabel.AutoSize := False;
  AdvancedDescLabel.Wordwrap := True;
  AdvancedDescLabel.Caption := LoremIpsum;
end;

И результат:

enter image description here