首页 > 解决方案 > TTextLayout - RightToLeft 和 Horizo​​ntalAlign 有什么区别?

问题描述

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

标签: delphifiremonkey

解决方案


你的观察是不正确的。

使用此演示: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                      |

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


推荐阅读