首页 > 代码库 > [修正] Firemonkey 中英文混排折行问题(移动平台)
[修正] Firemonkey 中英文混排折行问题(移动平台)
问题: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 中英文混排折行问题(移动平台)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。