Delphi: Panel mit mehrzeiliger zentrierter Caption
Frage von Gast | 30.04.2012 um 20:48
Ich möchte in einem Delphi-Programm einen Text auf ein Panel schreiben. Allerdings sollte dieser Text horizontal und vertikal zentriert und vor allem mehrzeilig sein.
Ich versuche momentan die Caption des Panels mit folgendem Code auf einen mehrzeiligen Text zu setzen:
Panel1.Caption := 'Zeile 1' + #13 + #10 + 'Zeile 2';
Allerdings funktioniert dies aus mir unerfindlichen Gründen nicht. Der Zeilenumbruch mit #13#10 funktioniert sonst eigentlich immer. Was mache ich hier falsch?!
Ähnliche Themen
Delphi: Mehrzeilige Caption für TLabel (zur Laufzeit und Design Zeit)
Tutorial | 1 Kommentar
Delphi/Lazarus: Link zu einer Website in einer Anwendung setzen
Tutorial | 0 Kommentare
Delphi/Lazarus: Label zur Laufzeit dynamisch erstellen
Tipp | 0 Kommentare
Delphi/Lazarus: Item bzw. Zeile zu ListView hinzufügen
Info | 0 Kommentare
Delphi/Lazarus: TabSheet auf PageControl dynamisch erzeugen
Tutorial | 0 Kommentare
Mehrere Komponenten auf Panel auswählen
Tipp | 0 Kommentare
Delphi/Lazarus: Panel mit Scrollbalken
Frage | 1 Antwort
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.
Leider unterstützt das TPanel keine mehrzeiligen Captions, zumindest in den neueren Versionen von Delphi nicht. Um die Caption des Panels mehrzeilig ausgeben zu können, müsstest du eine eigene Komponente von TPanel ableiten und das OnPaint Ereignis umschreiben.
Einfacher geht es aber so: Setz einfach ein TLabel auf das Panel und formatiere es folgendermaßen:
Natürlich kannst du die ganzen Eigenschaften (bis auf das #13#10) auch einfach über den Objektinspektor eingeben.
Zur Erklärung: Das Label wird über "Align" so ausgedehnt, dass es die komplette Größe des Panels einnimmt. Nun wäre allerdings die Aufschrift des Labels nur ganz oben zu sehen. Das wollen wir nicht, deswegen setzen wir "Alignment" auf "taCenter" und "Layout" auf "tlCenter", womit wir die Aufschrift des Labels zentrieren. Zuletzt können wir noch "WordWrap" auf "True" setzen, womit wir den Text im Label automatisch umbrechen lassen können. Die Caption des darunterliegenden Panels darf natürlich keinen Text enthalten.
05.05.2012 um 23:28