使用RightToLeft BidiMode的Delphi Canvas Textout

Agh*_*gha 0 delphi canvas bidi

我想在Canvas上打印从右到左的Unicode字符串.我找不到BidiMode属性或类似的东西来完成它.

当前位于字符串末尾的符号出现在"画布"上打印的文本的第一个字符之前.

Rem*_*eau 5

FMX

FireMonkey目前没有任何BiDi功能.

VCL

Vcl.TControl类有公共DrawTextBiDiModeFlags()DrawTextBiDiModeFlagsReadingOnly()方法,这有助于控制决定适当的比迪标志来指定调用Win32 API时DrawText()功能.

Vcl.Graphics.TCanvas,它TextOut()TextRect()方法不使用Win32 API DrawText()函数,它们使用Win32 API ExtTextOut()函数,其中TCanvas.TextFlags属性的值传递给fuOptions参数ExtTextOut().该TextFlags属性还会影响属性的值TCanvas.CanvasOrientation,TextOut()并在TextRect()内部用于调整绘图的X坐标.

对于从右到左绘图TCanvas,请ETO_RTLREADINGTextFlags属性中包含标志.