2012-07-30 10 views
10

Quiero mostrar el contenido como en la imagen de abajo en el paso de instalación del instalador ... he utilizado una nota para mostrar el contenido ... pero la nota no es el control apropiado ... a continuación, se ve como un cuadro de texto si el usuario pone centran en el campo memo ... ver más abajo la imagen .. cuando el usuario llega a este paso, se selecciona el primer campo memo ... installation typeControl para mostrar contenido multilínea en el instalador de configuración inno

+3

Utilice 'TLabel' o' TNewStaticText' y configúrelos 'WordWrap' en True y' AutoSize' en False. – TLama

Respuesta

8

uso ya sea TLabel o TNewStaticText componente (la TNewStaticText parece ser el preferido dentro de InnoSetup) y establecer el siguiente:

  • el WordWrap propiedad a True
  • la propiedad AutoSize a False

A continuación, sólo estirar los componentes en sus posiciones deseadas y el texto se ajuste a ese límite, al igual que se muestra en este ejemplo:

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

Y el resultado:

enter image description here

+0

Establecer 'AutoSize' a 'False' es innecesario de acuerdo con [los documentos] (http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/StdCtrls_TLabel_AutoSize.html). Y acabo de probarlo y parece funcionar bien con 'AutoSize' en' True'. – Ignitor

+0

@Ignitor, lo mantendría allí. Este es el caso cuando la etiqueta debe ser autosized. Como se menciona en los documentos, * "el tamaño de la etiqueta se reajusta cada vez que el texto cambia" * y lo estoy cambiando, ¿no? – TLama

+0

Bueno, la pregunta es qué se desea: si no quiere que la etiqueta ajuste automáticamente ** su altura **, entonces establece 'AutoSize' en' False'. Incluso con 'AutoSize: = True;', la etiqueta __no ajustará su ancho__ cuando 'WordWarp' está habilitado. Sin embargo, principalmente quería señalar que ** no es necesario establecer 'AutoSize: = False' para' WordWrap: = True' para que funcione **. – Ignitor

Cuestiones relacionadas