![]() |
Label Ausrichtung und Autosize Problem
Hallo,
gegeben ist ein Panel (dynamisch erzeugt) auf dem ein TVirtualImage und ein Label auch dynamisch drauf sollen. Erzeugen klappt auch grundsätzlich, nur hat das Label ein Problem. Das Label soll fast so breit wie das Panel sein und der Text im Label zentriert. Der Text kann aber merzeilig werden. Daher WordWrap auf true. Setze ich AutoSzie auf true klappt es mit dem mehrzeiligen text, aber linksbündig statt zentriert. Setze ich es auf false klappt es mit der Zentrierung aber es ist nicht mehr automatisch mehrzeilig.
Delphi-Quellcode:
Die F1 Hilfe sagt übrigens das dazu, aber nichts über Align in dem Zusammenhang:
MyLabel := TLabel.Create(Panel);
MyLabel.Parent := Panel; MyLabel.Font.Size := 14; MyLabel.Top := Image.Top + Image.Height + 3; MyLabel.Left := 3; MyLabel.Width := Panel.Width - LabelPay.Left - 3; MyLabel.AutoSize := false; //true; MyLabel.Alignment := TAlignment.taCenter; MyLabel.WordWrap := true; MyLabel.Caption := 'Mein Text'; Zitat:
|
AW: Label Ausrichtung und Autosize Problem
AutoSize heißt doch (so wie ich es verstehe), dass Breite und Höhe automatisch bestimmt werden. Damit wird die Breite des Labels immer so sein, dass der Text so gerade eben da rein passt.
Gibt dem Label mal 'ne andere Farbe, um zu sehen, wie breit es bei AutoSize = true "wirklich" ist. Ist es so breit wie Du vermutest oder "nur" so breit, dass der Text gerade reinpasst. Bei 'nem Label in der Farbe des darunterliegenden Panels sieht man nicht unbedingt, wenn sich die Breite des Labels ändert. |
AW: Label Ausrichtung und Autosize Problem
Danke mal für den Tipp.
Klappt nur noch nicht trotz dem:
Delphi-Quellcode:
Und eigentlich ist der Windows Stil aktiv.
MyLabel.StyleElements := [];
MyLabel.Color := clGreen; Aber ich mach da jetzt erstmal Pause. |
AW: Label Ausrichtung und Autosize Problem
Bei einzeiligem Text passt AutoSize und taCenter nicht zusammen, da die Breite des Labels dann nicht mehr konstant ist und an den Text angepasst wird. Da sich aber die Position nicht ändert wirkt das wie taLeft.
Du musst also mindestens zwei Zeilen haben, damit der Text auch zentriert wird. Gegebenenfalls musst du diese beiden Fälle separat bei der Zuweisung behandeln und bei 1-zeilig AutoSize nach der Height-Berechnung wieder abschalten und Width auf den gewünschten Wert setzen. Alternativ kannst du eventuell das Label alTop in ein Panel setzen. |
AW: Label Ausrichtung und Autosize Problem
Hallo,
was würden wir nur ohne Uwe machen? :-) Danke für die Idee mit dem Panel. Das funktioniert, auch wenn es insgesammt etwas aufwendig beim OnCLick Handling ist, aber ich hab's inzwischen funktionierend. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz