![]() |
FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten
Ich habe auf einer FMX Form ein TImage (400x400) und einen Button mit einem OnClick Event handler, desses Code wie folgt aussieht
Code:
Wenn ich es einfach so ausgebe, dann ist das 2-zeilig. In der 1. Zeile steht "Hallo, guten Morgen!", in der 2. Zeile "? Wie geht's"
procedure TForm7.Button1Click(Sender: TObject);
const lTextOut = 'Hallo, guten Morgen! Wie geht''s ? '; var BMP: TBitmap; R: TRectF; bWordWrap : Boolean; lWidth : Single; begin BMP := TBitmap.Create; BMP.SetSize(400, 400); try BMP.Clear(TAlphaColorRec.Wheat); BMP.Canvas.BeginScene; R.Create(10, 10, 390, 390); BMP.Canvas.Font.Size := 36; BMP.Canvas.Font.Style:=[TFontStyle.fsbold]; lWidth := BMP.Canvas.TextWidth(lTextOut); bWordWrap := (lwidth > 380); BMP.Canvas.FillText(R, lTextOut, bWordWrap, 1, [TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center); BMP.Canvas.EndScene; Image1.Bitmap.Assign(BMP); finally FreeAndNil(BMP); end; end; Ersetze ich das Fragezeichen am Ende mit einem Ausrufezeichen, passiert dasselbe, ersetze ich es mit einem "a", dann kommt das a wie im String am Ende... :o Gibt es dafür eine Erklärung ? |
AW: FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten
TFillTextFlag.RightToLeft :roll:
|
AW: FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten
Ist die einzige Möglichkeit, gibt nichts anderes. Hab aber nicht daran gedacht, dass man eventuell nichts reinschreiben kann :)
Das war's ! Danke! |
AW: FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten
Du hättest auch in der Hilfe lesen können, was es eigentlich bedeutet. :zink:
Es ist für Sprachen, die von "recht nach links" schreiben, wie Hebräisch oder Arabisch. Da ist aber nicht Alles (jedes Zeichen) linker, sondern es geht quasi Absatzweise und nun rate mal, wo dann auch das Satzzeichen bei Denen liegt. Warum eigentlich WordWrap nicht einfach immer auf True setzen? PS: Zu FillText, TextWidth und Co. sagt Delphi "deprecated, use TTextLayout" |
AW: FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten
Ich probiere gerade erst damit rum. Deswegen alles erstmal halbwegs händisch. Dazu kommen Unterschiede wie es in den Delphi-Versionen gehandhabt wird und auch zwischen FMX und VCL. Also man kann in eine TBitmap in FMX nicht auf die Art und Weise schreiben wie in VCL.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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