问题描述
将TTextLayout.RightToLeft设置为True似乎与将TTextAlign.HorizontalAlign设置为TTextAlign.Trailing相同。那么RightToLeft的意义是什么?实际上,他们似乎相互扭转。如果我将RightToLeft设置为True并将HorizontalAlign设置为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 |
现在为什么它能那样工作?我认为这与从右至左(阿拉伯语)或从左至右(英语)书写的语言有关。