设为首页 加入收藏

TOP

[修正] Firemonkey 中英文混排折行,省略字符,首字避开标点
2017-10-10 12:04:10 】 浏览:7081
Tags:修正 Firemonkey 中英文 省略 字符 首字 避开 标点

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

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

适用:Android & iOS 平台

 

修正 1:提供二种折行方式(只能选择一种方式)

  1. 中英文混排折行
  2. 单字符折行
请将源码 FMX.TextLayout.GPU.pas 复制到自己的工程目录里,再进行修改。
找到代码:
while (WordBeginIndex > LRun.StartIndex) and (Text.Chars[WordBeginIndex - 1].GetUnicodeCategory <> TUnicodeCategory.ucSpaceSeparator) do

折行方式1:中英文混排折行(此种折行方式,才是跨所有平台都相同的折行方式)
while (WordBeginIndex > LRun.StartIndex) and not (Text.Chars[WordBeginIndex - 1].GetUnicodeCategory in [TUnicodeCategory.ucSpaceSeparator, TUnicodeCategory.ucOtherLetter]) do

折行方式2:单字符折行
while (WordBeginIndex > LRun.StartIndex) do
中英文混排折行:未修正 中英文混排折行:修正后 单字符折行

修正 2:修正显示省略字符 2017/01/11 

显示省略字符:修正前 显示省略字符:修正后 对照 Windows

修正 3:修正首字避开标点字符 2017/01/13

首字避开标点字符:修正前 首字避开标点字符:修正后 左括号,右引号允许在首字
右括号,右引号其它標點允许在首字

由于改动地方较多,请下载后将 FMX.TextLayout.GPU.pas 复制到自己的工程目录里即可。

修正下载:

官方 QC:https://quality.embarcadero.com/browse/RSP-16590

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Delphi7的HtmlParser使用方法 下一篇Delphi7 安装ICS,与简单使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目