AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Label Ausrichtung und Autosize Problem

Ein Thema von TurboMagic · begonnen am 18. Jan 2025 · letzter Beitrag vom 18. Jan 2025
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.000 Beiträge
 
Delphi 12 Athens
 
#1

Label Ausrichtung und Autosize Problem

  Alt 18. Jan 2025, 18:15
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:
  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';
Die F1 Hilfe sagt übrigens das dazu, aber nichts über Align in dem Zusammenhang:

Zitat:
Legt fest, ob die Größe des Steuerelements automatisch an die Größe des enthaltenen Textes angepasst wird.

Mit AutoSize können Sie den Client-Bereich des Steuerelements automatisch an die Höhe und die Breite des
angezeigten Textes anpassen. Wenn AutoSize False ist, hat die Beschriftung eine feste Größe. Ist AutoSize
True, bewirkt jede Änderung am Text eine Anpassung der Beschriftungsgröße. Die Anpassung erfolgt auch, wenn
sich die Eigenschaft Font ändert.

Wenn WordWrap den Wert True hat, ist die Breite des Steuerelements fest. Ist AutoSize ebenfalls True, bewirken
Änderungen am Text, dass das Steuerelement in der Höhe angepasst wird. Wenn AutoSize True ist und WordWrap False,
wird die Höhe des Steuerelements von der Schriftart vorgegeben, und Änderungen am Text bewirken eine Breitenänderung.
Das passt für mich irgendwie noch nicht zusammen.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.524 Beiträge
 
Delphi 7 Professional
 
#2

AW: Label Ausrichtung und Autosize Problem

  Alt 18. Jan 2025, 18:23
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.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.000 Beiträge
 
Delphi 12 Athens
 
#3

AW: Label Ausrichtung und Autosize Problem

  Alt 18. Jan 2025, 18:26
Danke mal für den Tipp.
Klappt nur noch nicht trotz dem:

Delphi-Quellcode:
MyLabel.StyleElements := [];
MyLabel.Color := clGreen;
Und eigentlich ist der Windows Stil aktiv.
Aber ich mach da jetzt erstmal Pause.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.523 Beiträge
 
Delphi 12 Athens
 
#4

AW: Label Ausrichtung und Autosize Problem

  Alt 18. Jan 2025, 18:48
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.000 Beiträge
 
Delphi 12 Athens
 
#5

AW: Label Ausrichtung und Autosize Problem

  Alt 18. Jan 2025, 22:36
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.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 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 by Thomas Breitkreuz