[修正] Firemonkey 中英文混排折行,省略字符,首字避开标点
发布时间:2020-12-15 04:38:48 所属栏目:大数据 来源:网络整理
导读:问题:FMX 在移动平台的文字显示并非由该平台的原生 API 来显示,而是由 FMX.TextLayout.GPU 来处理,也许是官方没留意到中文字符的问题,造成在中英文混排折行时,有些问题。 修正:这个修正适用在任何文字显示的函数及控件上,如:TText,TLabel,DrawText..
问题:FMX 在移动平台的文字显示并非由该平台的原生 API 来显示,而是由 FMX.TextLayout.GPU 来处理,也许是官方没留意到中文字符的问题,造成在中英文混排折行时,有些问题。 修正:这个修正适用在任何文字显示的函数及控件上,如:TText,TLabel,DrawText....等。 适用:Android & iOS 平台 修正 1:提供二种折行方式(只能选择一种方式)
(WordBeginIndex > LRun.StartIndex) (Text.Chars[WordBeginIndex - ].GetUnicodeCategory <> TUnicodeCategory.ucSpaceSeparator) 折行方式1:中英文混排折行(此种折行方式,才是跨所有平台都相同的折行方式)
<span style="color: #0000ff">while (WordBeginIndex > LRun.StartIndex) <span style="color: #0000ff">and <span style="color: #0000ff">not (Text.Chars[WordBeginIndex - <span style="color: #800080">1].GetUnicodeCategory <span style="color: #0000ff">in [TUnicodeCategory.ucSpaceSeparator,TUnicodeCategory.ucOtherLetter]) <span style="color: #0000ff">do<span style="color: #000000"> 折行方式2:单字符折行 相关内容
|