Risposte:
Nel System.pas (che viene utilizzato automaticamente) è definito quanto segue:
const
sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF}
{$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF};
Questo è da Delphi 2009 (notare l'uso di AnsiChar e AnsiString). (Ritorno a capo aggiunto da me.)
Quindi, se vuoi fare il wrapping della tua TLabel, assicurati che AutoSize sia impostato su true, quindi usa il codice seguente:
label1.Caption := 'Line one'+sLineBreak+'Line two';
Funziona in tutte le versioni di Delphi da quando è stato introdotto sLineBreak, che credo fosse Delphi 6.
Oppure puoi usare anche la scorciatoia ^ M + ^ J. È tutta una questione di preferenza. i codici "CTRL-CHAR" vengono tradotti dal compilatore.
MyString := 'Hello,' + ^M + ^J + 'world!';
Puoi togliere il + tra ^ M e ^ J, ma poi riceverai un avviso dal compilatore (ma compilerà comunque bene).
var
stlst: TStringList;
begin
Label1.Caption := 'Hello,'+sLineBreak+'world!';
Label2.Caption := 'Hello,'#13#10'world!';
Label3.Caption := 'Hello,' + chr(13) + chr(10) + 'world!';
stlst := TStringList.Create;
stlst.Add('Hello,');
stlst.Add('world!');
Label4.Caption := stlst.Text;
Label5.WordWrap := True; //Multi-line Caption
Label5.Caption := 'Hello,'^M^J'world!';
Label6.Caption := AdjustLineBreaks('Hello,'#10'world!');
{http://delphi.about.com/library/rtl/blrtlAdjustLineBreaks.htm}
end;
Il modo agnostico della piattaforma sarebbe "sLineBreak": http://www.freepascal.org/docs-html/rtl/system/slinebreak.html
Scrivi ('Hello' + sLineBreak + 'World!');
Non ho una copia di Delphi a portata di mano, ma sono abbastanza certo che se imposti la proprietà wordwrap su true e la proprietà autosize su false dovrebbe avvolgere qualsiasi testo che metti alla dimensione che crei per l'etichetta. Se si desidera l'interruzione di riga in un determinato punto , potrebbe funzionare se si impostano le impostazioni precedenti e si incolla da un editor di testo .
Spero che questo ti aiuti.
A volte non voglio ingombrare il mio spazio codice, specialmente per un'etichetta statica. Per averlo definito con il modulo, inserisci il testo dell'etichetta nel modulo, quindi fai clic con il pulsante destro del mouse in un punto qualsiasi dello stesso modulo. Scegli "Visualizza come testo". Ora vedrai tutti gli oggetti come progettati, ma solo come testo. Scorri verso il basso o cerca il tuo testo. Quando lo trovi, modifica la didascalia in modo che assomigli a:
Caption = "Riga 1" # 13 "Riga 2" # 13 "Riga 3"
# 13 significa un ordinale 13 o ASCII per il ritorno a capo. Chr (13) è la stessa idea, CHR () cambia il numero in un tipo ordinale.
Notare che non ci sono punti e virgola in questo particolare aspetto di Delphi, e "=" viene utilizzato al posto di ": =". Il testo di ogni riga è racchiuso tra virgolette singole.
Al termine, fai di nuovo clic con il pulsante destro del mouse e scegli "Visualizza come modulo". È ora possibile eseguire qualsiasi formattazione come grassetto, giustificazione a destra, ecc. Non è possibile modificare nuovamente il testo sul modulo o si perdono le interruzioni di riga.
Uso anche "Visualizza come testo" per più modifiche in cui voglio solo scorrere e fare sostituzioni, ecc. Veloce.
Dave
private
{ Private declarations }
{declare a variable like this}
NewLine : string; // ok
// in next event handler assign a value to that variable (NewLine)
// like the code down
procedure TMainForm.FormCreate(Sender: TObject);
begin`enter code here`
NewLine := #10;
{Next Code To show NewLine In action}
//ShowMessage('Hello to programming with Delphi' + NewLine + 'Print New Lin now !!!!');
end;