码迷,mamicode.com
首页 > 移动开发 > 详细

[修正] Firemonkey 中英文混排折行问题(移动平台)

时间:2016-12-22 11:16:40      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:中文   label   images   http   log   英文   技术   cat   修改   

问题:FMX 在移动平台的文字显示并非由该平台的原生 API 来显示,而是由 FMX.TextLayout.GPU 来处理,也许是官方没留意到中文字符的问题,造成在中英文混排折行时,有些问题。

适用:这个修正适用在任何文字显示的函数及控件上,如:TText, TLabel, DrawText....等。

修正方法:

请将源码 FMX.TextLayout.GPU.pas 复制到自己的工程目录里,再进行修改。

找到代码:
while (WordBeginIndex > LRun.StartIndex) and (Text.Chars[WordBeginIndex - 1].GetUnicodeCategory <> TUnicodeCategory.ucSpaceSeparator) do

修改成如下:
while (WordBeginIndex > LRun.StartIndex) and not (Text.Chars[WordBeginIndex - 1].GetUnicodeCategory in [TUnicodeCategory.ucSpaceSeparator, TUnicodeCategory.ucOtherLetter]) do

效果:

未修正:

技术分享

修正后:

技术分享

[修正] Firemonkey 中英文混排折行问题(移动平台)

标签:中文   label   images   http   log   英文   技术   cat   修改   

原文地址:http://www.cnblogs.com/onechen/p/6209965.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!