代码之家  ›  专栏  ›  技术社区  ›  Brian Frost

带特殊字符的Delphi-DFM到D2009的移植

  •  4
  • Brian Frost  · 技术社区  · 15 年前

    现在我们希望这些表格在D2009中看起来是一样的。度符号看起来很好,但欧姆符号显示为“”,因为dfm文本是“Caption='键入欧姆-1234'#217”。我发现我可以编辑表单以放入正确的unicode ohms符号(8486),但当返回到D7时,这当然会丢失到“?”。理想情况下,我想告诉D2009继续在表单中使用希腊字符集,以便dfm中的#217映射到ohms符号。这可能吗?它似乎忽略了Font.Charset设置,即“希腊字符集”。我发现了一个解决这个问题的肮脏方法,就是遍历所有组件并执行“StringReplace(S,,,OhmsChar,[rfReplaceAll]),但是这很可怕,肯定有更好的方法吗?

    谢谢, 布瑞恩

    3 回复  |  直到 13 年前
        1
  •  4
  •   dmajkic    15 年前

    类似的问题,我已经解决了使用 dxgettext . 我没有使用有问题的标题,而是使用干净的ascii(例如“typeinohms”),然后将它们翻译成po文件,作为资源嵌入到exe中。

    顺便说一句, dxgettext公司 这是一个很好的向应用程序添加翻译的方法,只需要很少的开销和标准格式(po/mo)以及良好的3p编辑器(poEdit)。适用于D7和D2009。

        2
  •  3
  •   Toon Krijthe    15 年前

    正如Bruce已经提到的,您可以使用代码来给出这些值。我只是举个例子和一些额外的信息。

    resourcestring
    {$IFDEF UNICODE}
      cOhm = unicodeohm;        // replace with correct values.
      cDegree = unicodedegree;
    {$ELSE}
      cOhm = ansiohm;
      cDegree = ansidegree;
    

    我建议对可翻译文本使用资源字符串而不是const,因为大多数翻译工具都处理资源。

        3
  •  2
  •   Bruce McGee    15 年前