¿Cómo incluyo un carácter de nueva línea en una cadena en Delphi?




newline (8)

Quiero crear una cadena que abarque varias líneas para asignar a una propiedad de Título de etiqueta. ¿Cómo se hace esto en Delphi?


A veces no quiero saturar mi espacio de código, especialmente para una etiqueta estática. Para simplemente definirlo con el formulario, ingrese el texto de la etiqueta en el formulario, luego haga clic con el botón secundario en cualquier lugar del mismo formulario. Elija "Ver como texto". Ahora verá todos los objetos como diseñados, pero solo como texto. Desplácese hacia abajo o busque su texto. Cuando lo encuentre, edite el título, por lo que se ve algo así como:

Leyenda = 'Línea 1' # 13 'Línea 2' # 13 'Línea 3'

# 13 significa un ordinal 13 o ascii para el retorno del carro. Chr (13) es la misma idea, CHR () cambia el número a un tipo ordinal.

Tenga en cuenta que no hay punto y coma en esta faceta particular de Delphi, y se usa "=" en lugar de ": =". El texto de cada línea está entre comillas simples.

Una vez que haya terminado, haga clic una vez más y seleccione "Ver como formulario". Ahora puede hacer cualquier formateo como negrita, justificación derecha, etc. Simplemente no puede volver a editar el texto en el formulario o perderá los saltos de línea.

También uso "Ver como texto" para múltiples cambios en los que solo quiero desplazarme y hacer reemplazos, etc. Rápido.

Dave


Aquí hay un enfoque aún más corto:

my_string := 'Hello,'#13#10' world!';

En el lado, un truco que puede ser útil:
Si mantiene sus múltiples cadenas en una TStrings, solo tiene que usar la propiedad Text de las TStrings como en el siguiente ejemplo.

Label1.Caption := Memo1.Lines.Text;

Y obtendrás tu etiqueta multilínea ...



O puede usar el atajo ^ M + ^ J también. Todo es una cuestión de preferencia. los códigos "CTRL-CHAR" son traducidos por el compilador.

MyString := 'Hello,' + ^M + ^J + 'world!';

Puede sacar el + entre los ^ M y ^ J, pero luego recibirá una advertencia del compilador (pero aún así compilará bien).


my_string := 'Hello,' + #13#10 + 'world!';

#13#10 son los caracteres CR / LF en decimal


ShowMessage('Hello'+Chr(10)+'World');

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;




newline