AGB  ·  Datenschutz  ·  Impressum  







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

FMX - TLabel automatische Höhenanpassung

Ein Thema von DeddyH · begonnen am 17. Feb 2016 · letzter Beitrag vom 18. Feb 2016
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.546 Beiträge
 
Delphi 11 Alexandria
 
#1

FMX - TLabel automatische Höhenanpassung

  Alt 17. Feb 2016, 12:50
Mahlzeit,

gegeben seien ein TLabel mit Align Top und eine beliebige andere Komponente (z.B. ein Panel oder ein TabControl) mit Align Client. Der Text des Labels wird zur Laufzeit gesetzt. Ich möchte erreichen, dass sich dieses je nach Text und Ausrichtung des Geräts dynamisch in der Höhe anpasst. AutoSize steht auf false, WordWrap auf true, momentan wird zu Testzwecken an verschiedenen Stellen (Events) der folgende Code durchlaufen.
Delphi-Quellcode:
procedure TfrmDingens.SetLabelHeight(const ALabel: TLabel);
var
  Layout: TTextLayout;
begin
  Canvas.BeginScene;
  try
    Layout := TTextLayoutManager.DefaultTextLayout.Create(ALabel.Canvas);
    try
      Layout.BeginUpdate;
      try
        Layout.TopLeft := PointF(0, 0);
        Layout.MaxSize := PointF(ALabel.AbsoluteRect.Width, MAXINT);
        Layout.Text := ALabel.Text;
        Layout.WordWrap := ALabel.TextSettings.WordWrap;
        Layout.HorizontalAlign := ALabel.TextSettings.HorzAlign;
        Layout.VerticalAlign := ALabel.TextSettings.VertAlign;
        Layout.Font.Assign(ALabel.TextSettings.Font);
        Layout.RightToLeft := false;
      finally
        Layout.EndUpdate;
        ALabel.Size.Height := ALabel.Margins.Height +
          Layout.TextRect.Height;
      end;
    finally
      Layout.Free;
    end;
  finally
    Canvas.EndScene;
  end;
end;
Unter Windows klappt das recht gut, z.B. im OnPainting des Formulars. Unter Android und iOS hingegen stimmt die Höhe überhaupt nicht. Bin ich völlig auf dem Holzweg, oder habe ich etwas übersehen?

Danke im Voraus.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
 


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 06:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz