Delphi: Mehrzeilige Caption für TLabel (zur Laufzeit und Design Zeit)
Tutorial von Stefan Trost | Letztes Update am 25.12.2022 | Erstellt am 05.09.2012
In diesem Tipp möchte ich euch zeigen, wie ihr es hinbekommen könnt, einem Label (TLabel) eine mehrzeilige Caption in Delphi zu verpassen. Wir möchten uns dabei sowohl ansehen, wie wir mehrzeilige Captions zur Laufzeit als auch zur Design Zeit erstellen können.
Zunächst könnt ihr die folgenden Eigenschaften eures Labels anpassen. Das könnt ihr einfach über den Objektinspektor tun oder ihr nutzt den folgenden Code dafür (zum Beispiel in der OnCreate-Procedure eurer Form):
with Label1 do begin WordWrap := True; AutoSize := True; Align := alTop; // oder alClient end;
Die Eigenschaft "WordWrap" sorgt dafür, dass der Text eurer Caption automatisch umgebrochen wird, falls er zu lang für die Breite des Labels ist. Wenn ihr einen längeren Text als Caption benutzen möchtet, solltet ihr diese Eigenschaft setzen, da der Text sonst nicht vollständig sichtbar sein wird.
Darüber hinaus können auch die Eigenschaften "AutoSize" und "Align" im Zusammenhang mit mehrzeiligen Captions sinnvoll sein, damit sich die Größe des Labels automatisch an seinen Inhalt anpasst und den zur Verfügung stehenden Platz vollständig ausnutzt (zum Beispiel wenn das Label auf einem Panel liegt).
Mehrzeilige Caption zur Laufzeit setzen
Als erstes möchten wir uns anschauen, wie wir eine mehrzeilige Caption für unser Label zur Laufzeit (Run Time) unseres Programms setzen können. Dafür müssen wir in unseren String für die Caption des Labels einfach nur einen Zeilenumbruch an der Stelle einbauen, an der die Zeile umbrechen soll.
Unter Windows stehen die Zeichen #13 und #10 nacheinander geschrieben für einen Zeilenumbruch (das sind die Codepoints U+0D und U+0A). Demnach könnt ihr im Code zum Beispiel auf die folgende Weise eine mehrzeilige Caption erzeugen:
Label1.Caption := 'Zeile 1' + #13#10 + 'Zeile 2';
Alternativ könnt ihr auch die Konstante sLineBreak verwenden, die in der Unit "System" von Delphi definiert ist:
Label1.Caption := 'Zeile 1' + sLineBreak + 'Zeile 2';
Der Vorteil der Verwendung dieser Variante ist, dass die Konstante sLineBreak je nach System, auf dem wir unser Programm kompilieren, die richtigen Zeichen für einen Zeilenumbruch des jeweiligen Systems enthält, ohne dass wir den Code anpassen müssen. Unser Code wird damit plattformunabhängig. Linux und macOS verwenden zum Beispiel nur das Zeichen #10 (U+0A) als Zeilenumbruch.
Wenn wir statt Delphi zu nutzen, ein Programm mit Lazarus erstellen, können wir auch die Konstante LineEnding, die ebenfalls in der Unit "System" deklariert ist, in der gleichen Weise wie "sLineBreak" verwenden. Lazarus ermöglicht es, den gleichen Code zu nutzen, um ein Programm zum Beispiel sowohl für Windows als auch für macOS und Linux zu kompilieren. Mit der Verwendung der Konstante LineEnding müssen wir unseren Code nicht für die unterschiedlichen Zeilenumbruchtypen der einzelnen Systeme anpassen.
Mehrzeilige Caption zur Design-Zeit erstellen
Wollt ihr den Zeilenumbruch bereits zur Design Time einstellen, könnt ihr dafür leider nicht wie gewohnt den Objektinspektor benutzen, da dieser nur einzeilige Texte für die Caption zulässt.
Stattdessen könnt ihr mit der rechten Maustaste auf das Label klicken und "View as Text" auswählen. Irgendwo findet ihr in dem neuen sich öffnenden Fenster den Bereich "object Label1:TLabel", wo ihr die Caption mit dem #13#10 wie oben beschrieben einstellen könnt.
Das könnte zum Beispiel so aussehen:
object Label1: TLabel Left = 0 Top = 0 Width = 100 Height = 13 Caption = 'Zeile 1'#13#10'Zeile 2' WordWrap = True AutoSize = True Align = alTop end
Anschließend könnt ihr wieder mit der rechten Maustaste auf den Inhalt des Fensters klicken und "View as Form" auswählen. Damit gelangt ihr wieder zurück zur Design-Ansicht und solltet den Zeilenumbruch im Text des Labels sehen.
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
Delphi/Lazarus: TabSheet auf PageControl dynamisch erzeugen
Tutorial | 0 Kommentare
Delphi/Lazarus: Link zu einer Website in einer Anwendung setzen
Tutorial | 0 Kommentare
Delphi/Lazarus: Label zur Laufzeit dynamisch erstellen
Tipp | 0 Kommentare
Mehrere Texte gleichzeitig ersetzen
Tutorial | 0 Kommentare
PHP: Eine E-Mail versenden
Tutorial | 0 Kommentare
Delphi: Komponenten über ihren Namen ansprechen
Tipp | 0 Kommentare
Delphi/Lazarus: Item bzw. Zeile zu ListView hinzufügen
Info | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Rechte Maustaste auf das Label
Quelltext (.lfm) anzeigen
Labelobjekt suchen
Caption = 'Zeile1'#13#10'Zeile2';
Speichern
Fertig
19.07.2015 um 20:08