TTextLayout-RightToLeft和Horizo​​ntalAlign有什么区别?

问题描述

将TTextLayout.RightToLeft设置为True似乎与将TTextAlign.Horizo​​ntalAlign设置为TTextAlign.Trailing相同。那么RightToLeft的意义是什么?实际上,他们似乎相互扭转。如果我将RightToLeft设置为True并将Horizo​​ntalAlign设置为Trailing,则文本再次位于左侧,我希望RightToLeft能够像希伯来语文本一样将文本从右向左书写,但是事实并非如此。 TTextLayout是否以任何方式从右到左支持希伯来语样式?

解决方法

您的观察结果不正确。

使用此演示:https://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RadStudio_XE6/Object%20Pascal/FireMonkey%20Desktop/TextLayoutDemo/。添加一行带有结尾感叹号的文本,例如“ Hello World!”。然后播放设置。您会看到感叹号的位置。

这是结果。 |用于显示左右边距

Align=Left,RightToleft=FALSE
    |Hello World!                      |

Align=Right,RightToleft=FALSE
    |                      Hello World!|

Align=Left,RightToleft=TRUE
    |                      !Hello World|

Align=Right,RightToleft=TRUE
    |!Hello World                      |

现在为什么它能那样工作?我认为这与从右至左(阿拉伯语)或从左至右(英语)书写的语言有关。