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?¿Cómo incluyo un carácter de nueva línea en una cadena en Delphi?
Respuesta
En los System.pas (que automáticamente se usa) la siguiente se define:
const
sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF}
{$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF};
Esto es de Delphi 2009 (nótese el uso de AnsiChar y AnsiString). (Ajuste de línea añadido por mí.)
Así que si usted desea hacer su envoltura TLabel, asegúrese de AutoSize se establece en true, y luego usar el siguiente código:
label1.Caption := 'Line one'+sLineBreak+'Line two';
Obras en todas las versiones de Delphi desde que se introdujo sLineBreak, que creo que era Delphi 6.
my_string := 'Hello,' + #13#10 + 'world!';
#13#10
es los caracteres CR/LF en decimal
Y aún funciona para el año 2009 (Unicode). –
Aquí hay un enfoque aún más corto:
my_string := 'Hello,'#13#10' world!';
no crossplatform :) – naXa
En el lado, un truco que puede ser útil:
Si mantenga 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á su etiqueta de varias líneas ...
O puede utilizar el^M + J^acceso directo 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 tomar la distancia entre el +^M y J ^, pero por lo que recibirá una advertencia por el compilador (pero todavía se compilará bien).
No tengo una copia de Delphi a mano, pero estoy bastante seguro de que si configura la propiedad wordwrap en true y la propiedad autosize en false, debe envolver cualquier texto que pones en el tamaño que hace la etiqueta. Si desea dividir la línea en un lugar determinado, entonces podría funcionar si establece las configuraciones anteriores y las pega desde un editor de texto.
Espero que esto ayude.
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;
El plattform manera agnóstico sería 'sLineBreak': http://www.freepascal.org/docs-html/rtl/system/slinebreak.html
escritura ('Hola' + + sLineBreak '! Mundial');
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, editar el título, por lo que se ve algo como:
Caption = 'Línea 1' # 13'Line 2 '# 13'Line 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.
de Dave
La respuesta aceptada es directa al grano, al igual que la pregunta es. Esta respuesta, por el contrario, agrega más de lo que se pidió; peor aún: de una manera no tan clara. – ranieribt
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;
Formatee su código y agregue alguna descripción de cómo esto resuelve el problema. – Blastfurnace
- 1. cadena de JavaScript carácter de nueva línea?
- 2. ¿Cómo agregar una nueva línea extra con 'puts' sin pegar el carácter de nueva línea en una cadena?
- 3. Carácter de nueva línea en stringbuilder
- 4. ¿Cómo agregar un carácter nueva línea en la porción de cadena de un ActionLink?
- 5. Detectar un carácter de nueva línea
- 6. ¿Cómo agregar el carácter de nueva línea en app.config?
- 7. Insertar carácter de nueva línea después de cada 76 caracteres en una cadena de base64
- 8. ¿Cómo incluyo JavaScript en línea en Haml?
- 9. Cómo imprimir una cadena utilizando pl/sql sin agregar el carácter de nueva línea al final
- 10. Agregar una nueva línea en una cadena en C#
- 11. Carácter de nueva línea en la solicitud posterior
- 12. ¿Cómo imprimir un carácter a la vez en una línea?
- 13. Mostrar carácter de nueva línea en PDF generado con FOP
- 14. En Eclipse, ¿cómo reemplazo un personaje por una nueva línea?
- 15. Eliminar el carácter de nueva línea de una cadena mediante php regex
- 16. donde se encuentra una nueva línea en una cadena:
- 17. Elegir carácter de línea nueva en el Bloc de notas ++
- 18. ¿Cómo incluyo una nueva línea en un mensaje de texto enviado como correo electrónico desde una aplicación ASP.Net?
- 19. Cómo agregar una nueva línea Carácter (\ n) en el paquete de recursos de mensaje en JSF1.2
- 20. ¿Cómo escribir el carácter de nueva línea nativa en un descriptor de archivo en Python?
- 21. reemplazar el carácter de nueva línea en la variable bash?
- 22. Dividir una cadena en una cadena, no un carácter
- 23. ¿Convierte un solo carácter en una cadena?
- 24. BASH: Tira carácter de nueva línea de cuerda (leer línea)
- 25. ¿Cómo se lee cin con espacios en blanco hasta un carácter de nueva línea?
- 26. primer carácter de una cadena en Bash
- 27. nueva línea en una cadena de varias líneas
- 28. Eliminación de retorno de carro y nueva línea del final de una cadena en C#
- 29. ¿Cómo agrego una nueva línea en formato html en android?
- 30. Cómo escapar de una nueva línea de la cadena
¡Gracias por eso! Siempre he usado # 13 # 10. –
¡Guau, eso es mucho mejor de lo que esperaba! – Brendan