Registriert seit: 2. Mai 2018
Ort: Marburg
269 Beiträge
Delphi 12 Athens
|
AW: Texthöhen-Berechnung fehlerhaft in FMX auf Android
19. Sep 2018, 15:20
Das MeasureText scheint ja genau das Problem zu sein.
Sowohl die TMS-Komponente als auch meine vorige manuelle Lösung verwenden ja genau diese Methode.
Das MeasureText macht nämlich auch nichts anderes als ein TTextlayout zu erzeugen, dieses mit den entsprechenden Einstellungen zu füttern und das TRectF, was dabei rauskommt, in die Variable zu schreiben.
Das habe ich bereits manuell probiert, behebt das Problem aber leider auch nicht.
Und wie gesagt, das Problem tritt nur auf Android auf, nicht auf IOS, weswegen ich vermute, dass das sehr tief versteckt ist.
Der Trick, mit dem ich der Lösung am nächsten gekommen bin, ist wie gesagt die Methode mit dem Label. D.h. Label-Width auf Node-Width setzen, Einstellungen angleichen, Text reinsetzen und die dadurch entstandene Label.Höhe zurück an die Node übergeben.
Das begrenzt das Problem bei mir auf einen winzigen Bereich, schließt es aber leider nicht vollkommen aus.
Ich kann das Problem sogar komplett beheben, indem ich auf einem bestimmten Smartphone die Width manuell reinreguliere (Label.Width := Node.Width - 4; z.B.), aber auf einem anderen Smartphone stimmt diese Feinregulierung dann nicht mehr, was für mich ein weiteres Indiz ist, dass da ganz grundsätzlich was falsch läuft bei der Kalkulation.
Wie gesagt, es ist nur ein verhältnismäßig kleiner Bereich, in dem es schief geht, aber leider ist das bereits zu viel.
|