Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Text Höhe in Pixel umrechnen ( VCL vs. FMX) (https://www.delphipraxis.net/203994-text-hoehe-pixel-umrechnen-vcl-vs-fmx.html)

bernhard_LA 13. Apr 2020 21:58

Text Höhe in Pixel umrechnen ( VCL vs. FMX)
 
unter VCL hat uns diese Funktion gute Dienste erwiesen .... wie sieht denn die FMX Variante aus ?


Delphi-Quellcode:
function  GetTextHeightInPixels(Text: string; Font: TFont): Integer;
var
  PxHeight: Integer;
  TmpBmp: TBitmap;
begin
  TmpBmp := TBitmap.Create;
  try
     TmpBmp.Canvas.Font := Font;    ///   geht nicht unter FMX
     PxHeight := TmpBmp.Canvas.TextHeight(Text); ///   geht nicht unter FMX
  finally
    FreeAndNil(TmpBmp);
  end;

  Result := PxHeight;
end;

himitsu 13. Apr 2020 23:14

AW: Text Höhe in Pixel umrechnen ( VCL vs. FMX)
 
Auch nicht zu vergessen, dass eventuell noch mehrere Ebenen an Scale und Rotation verschachtelt drüber liegen können.

Delphi-Referenz durchsuchenTTextLayout.TextHeight
Also so, wie es aussieht, würde ich das TTextLayout an der passenden Stelle im FMX einfügen und dann ma schauen was es da für Werte liefert.

Medium 14. Apr 2020 07:26

AW: Text Höhe in Pixel umrechnen ( VCL vs. FMX)
 
TCanvas.MeasureText() liefert ein entsprechendes TRect. Ich gehe allerdings stark davon aus, dass Skalierungen des Forms hier nicht berücksichtigt werden. Was ich zunächst auch für richtig halte, da die Werte dann direkt im selben Kontext benutzt werden können. Wenn du tatsächliche Größe auf dem Bildschirm willst, müsstest du die Skalierung selbst noch draufrechnen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 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