【问题标题】:How to display Greek symbols in a TMenuOption如何在 TMenuOption 中显示希腊符号
【发布时间】:2010-11-20 21:13:16
【问题描述】:

在 Delphi 2010 中,我想在 TMenuOption 和其他类型的 VCL 控件中显示希腊符号(alpha、beta 等)。

分配

   TEdit.Text or TMenuItem.Caption := 'Hydrogen ' + chr(945)  + ' More Text'

似乎工作正常。

我担心这可能不适用于所有机器。 TEdit 有一个字体属性,TMenuItem 没有,所以我猜它使用了一些默认的系统字体。

无论字体如何,chr(945) 是否应该始终显示为希腊字母字符?如果没有,我有什么方法可以确保 chr(945) 始终作为字母字符出现在屏幕上,而不是硬连线字体(这对于系统字体来说很难做到......)

TIA

【问题讨论】:

    标签: delphi unicode utf-8 character-encoding internationalization


    【解决方案1】:

    您也可以使用常量。源文件也是 unicode,因此您可以添加任何类型的常量。请记住将源代码保存为 unicode。

    const
      alpha = 'α';
      beta  = 'β';
      gamma = 'γ';
    

    【讨论】:

    • 没错,但这不是问题所在。 chr(945) 和 'α' 都返回相同的字符,当在菜单标题中使用时,它们都可能会遇到问题。
    • 感谢 Gamecat 的建议。正如 GolezTrol 所指出的,这不完全是我的问题。我的偏好是不在我的单位中嵌入国际字符,因为我使用的一些旧实用程序不能很好地处理它们。
    【解决方案2】:

    由于 Delphi 2010 是 unicode,chr(945) 总是指向同一个字符,在本例中是希腊字母。如果用于绘制菜单项的字体包含该字符,该字符将正确显示。没有绘制另一个字符的风险,除了问号,如果字体不包含特定字符,Windows 通常会使用问号。

    大多数 Windows 字体确实包含常见的 unicode 字符(包括希腊语)。然而,用户可能能够选择不同的字体。您可以使用系统上安装的不同字体自己绘制菜单,但对于通常开箱即用的东西来说,这可能是一项非常艰巨的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      相关资源
      最近更新 更多