Control for showing multiline content in inno set

2019-03-25 11:04发布

I want to show the content like in below image in installation step of installer...i have used memo for showing the content..but memo is not appropriate control..as then it looks like a textbox if user puts focus on the memo field... see below image.. when user comes to this step,the first memo field is selected...installation type

1条回答
仙女界的扛把子
2楼-- · 2019-03-25 11:38

Use either TLabel or TNewStaticText component (the TNewStaticText seems to be preferred inside of InnoSetup) and set it the following:

  • the WordWrap property to True
  • the AutoSize property to False

Then just stretch the components into your desired positions and the text will fit to that bounds, just like shown in this example:

[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;

And the result:

enter image description here

查看更多
登录 后发表回答