zoukankan      html  css  js  c++  java
  • [修正] 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

  • 相关阅读:
    p4 view mapping及其特殊字符
    Build Release Blogs
    Linux技术blogs
    为什么使用tmux
    linux下安装wine
    PythonDjango的windows环境
    tmux安装
    基于云端的开发平台Team Foundation Service
    linux网络配置之setup命令
    Centos6.2设置静态ip和dns
  • 原文地址:https://www.cnblogs.com/onechen/p/6209965.html
Copyright © 2011-2022 走看看