AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten

FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten

Ein Thema von MyRealName · begonnen am 26. Sep 2020 · letzter Beitrag vom 26. Sep 2020
Antwort Antwort
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
501 Beiträge
 
Delphi 10.3 Rio
 
#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
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
37.028 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten

  Alt 26. Sep 2020, 10:01
TFillTextFlag.RightToLeft
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
501 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten

  Alt 26. Sep 2020, 10:20
Ist die einzige Möglichkeit, gibt nichts anderes. Hab aber nicht daran gedacht, dass man eventuell nichts reinschreiben kann
Das war's ! Danke!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
37.028 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten

  Alt 26. Sep 2020, 10:51
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"
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (26. Sep 2020 um 10:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
501 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: FMX : TBitmap.Canvas.FillText seltsames Ausgabe-Verhalten

  Alt 26. Sep 2020, 14:12
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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