13 Stimmen

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?!

AntwortenPositivNegativ
2Beste Antwort2 Stimmen

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:

with Label1 do begin
   Align := alClient;
   Alignment := taCenter;
   AutoSize := False;
   Layout := tlCenter;
   WordWrap := True;

   Caption := 'Zeile 1' + #13 + #10 + 'Zeile 2';
end;

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

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

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.