Wie füge ich ein neue-Zeile-Zeichen in einem string in Delphi?
Ich möchte einen string über mehrere Zeilen zu ordnen, um eine Label-Caption-Eigenschaft. Wie ist das in Delphi getan?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich möchte einen string über mehrere Zeilen zu ordnen, um eine Label-Caption-Eigenschaft. Wie ist das in Delphi getan?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In das System.pas (die wird automatisch benutzt) ist Folgendes definiert:
Dies ist von Delphi 2009 (beachten Sie die Verwendung von AnsiChar und AnsiString). (Zeilenumbruch von mir aufgenommen.)
Also, wenn Sie wollen, um Ihren TLabel wickeln, stellen Sie sicher, AutoSize auf true gesetzt ist, und verwenden Sie dann den folgenden code:
Funktioniert in allen Versionen von Delphi, da sLineBreak eingeführt wurde, die ich glaube, war Delphi 6.
Hier ist ein noch kürzerer Weg:
my_string := 'Hello,' + #13#10 + 'world!';
#13#10
ist die CR/LF-Zeichen in dezimal -Oder verwenden Sie den ^M+^ - J-Verknüpfung auch. Alles eine Frage der Präferenz. die "STRG-CHAR" - codes sind in der übersetzung durch den compiler.
Können Sie mit der + Weg zwischen den ^M und ^J, aber dann erhalten Sie eine Warnung durch den compiler (aber es wird noch kompilieren fein).
Auf der Seite, ein trick, die nützlich sein können:
Wenn Sie halten Ihr mehrere strings in ein TStrings, Sie müssen nur verwenden Sie die Text-Eigenschaft des TStrings wie im folgenden Beispiel.
Und erhalten Sie Ihre multi-line-label...
Den plattform-Agnostiker Weg wäre 'sLineBreak':
http://www.freepascal.org/docs-html/rtl/system/slinebreak.html
Write('Hallo' + sLineBreak + 'Welt!');
Ich habe nicht eine Kopie von Delphi zur hand, aber ich bin ziemlich sicher, wenn Sie die wordwrap-Eigenschaft auf true und die autosize-Eigenschaft auf false sollte es wickeln Sie jeden text, den Sie setzen es auf die Größe stellen Sie das Etikett. Wenn Sie möchten, um Zeilenumbruch in einem bestimmten Ort, dann es könnte funktionieren, wenn Sie die oben genannten Einstellungen und paste aus einem Texteditor.
Hoffe, das hilft.
Manchmal will ich nicht zu überhäufen, meine code-Raum, vor allem für ein statisches label. Zu einfach haben es definiert mit dem Formular, geben Sie den label-text auf der form, dann mit der rechten Maustaste überall auf die gleiche form. Wählen Sie "Ansicht als Text". Nun sehen Sie alle Objekte, wie entworfen, aber nur als text. Blättern Sie nach unten, oder suchen für Ihren text. Wenn Sie es finden, Bearbeiten Sie die Beschriftung, so sieht es etwas aus wie:
Caption = 'Zeile 1'#13'Line 2'#13'Line 3'
#13 bedeutet eine Ordnungszahl von 13 oder ascii carriage return. Chr(13) ist die gleiche Idee, CHR() ändert die Zahl auf einer ordinalen Typ.
Beachten Sie, dass es gibt keine semi-colon ' s in diesem speziellen Facette von Delphi, und "=" verwendet wird anstatt ":=". Den text für jede Zeile in einfache Anführungszeichen eingeschlossen ist.
Sobald Sie fertig sind, rechtsklicken Sie erneut und wählen Sie "Ansicht als Formular". Sie können nun alle Formatierungen wie Fett, Rechtsbündig, usw. Sie können nicht nur re-Bearbeiten Sie den text auf dem Formular oder Sie verlieren Ihre Linie bricht.
Ich auch mit "Ansicht als Text" für mehrere änderungen, wo ich will einfach nur, um zu Blättern und tun, Ersatz, etc. Schnell.
Dave