Einzelnen Beitrag anzeigen

Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
679 Beiträge
 
Delphi 10.4 Sydney
 
#1

FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten

  Alt 26. Sep 2020, 09:54
Ich habe auf einer FMX Form ein TImage (400x400) und einen Button mit einem OnClick Event handler, desses Code wie folgt aussieht

Code:
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;
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"
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...

Gibt es dafür eine Erklärung ?
  Mit Zitat antworten Zitat