TButton.Caption中的特殊unicode字符(而不是图标)

时间:2016-10-05 14:29:52

标签: delphi unicode delphi-xe7

是否可以从键盘输入特殊的Unicode字符,链接下面的字符?

U+2603  ☃   SNOWMAN
U+2604  ☄   COMET
U+2605  ★   BLACK STAR
U+2606  ☆   WHITE STAR
U+2607  ☇   LIGHTNING
U+2608  ☈   THUNDERSTORM
U+2609  ☉   SUN
U+260A  ☊   ASCENDING NODE
U+260B  ☋   DESCENDING NODE

我想举例说明其中包含上/下arrows的按钮,而不加载图片。

我尝试在键盘上输入Alt + 08593,但会插入其他字符(比预期的箭头)。

更新:
原因是懒惰。我懒得搜索图标或创建自己的图标。例如,您可以简单地替换臭名昭着的'保存'软盘图标。看看:。 BAM!尼斯。正确?

更新:
似乎某些字符如(green book = 128215)不被Delphi接受,具有复制/粘贴功能。

2 个答案:

答案 0 :(得分:5)

Delphi IDE不接受高ALT密钥代码。几个选择:

  • 从其他地方粘贴文字。
  • 直接在.dfm文件中输入数字代码。

作为第二种方法的示例,请在.dfm文件中尝试使用按钮标题属性:

Caption = #8592#8593#8594#8595

你还提到绿皮书U + 1F4D7。那是来自BMP外部,因此用代理对编码:

Caption = #55357#56535

我的猜测是,只要您希望您的字形以彩色或不同的大小显示,您就会发现使用文字会使这变得不可能。您也可能遇到不包含所选字符的字形的字体。所以你会发现使用图像是最强大的方法。

答案 1 :(得分:2)

或者,如果你有一个十进制值表:

9731  ☃   SNOWMAN
9732  ☄   COMET
9733  ★   BLACK STAR
9734  ☆   WHITE STAR
9735  ☇   LIGHTNING
9736  ☈   THUNDERSTORM
9737  ☉   SUN
9738  ☊   ASCENDING NODE
9739  ☋   DESCENDING NODE

然后你可以在Delphi中使用键盘。

要将Button1的标题更改为雪人:

  1. Alt+F12将表单编辑为文本
  2. Ctrl+E进入增量搜索模式
  3. 键入Button1,或根据需要找到Button1的定义
  4. Caption =属性定义的右侧(我假设此处为VCL)输入#后跟相关的Unicode值,例如#9731

    Caption = #9731

  5. 如果你想要文字和雪人,字符代码不在引号之内,例如。

    Caption = 'Snowman = '#9731

  6. 有关#语法的更多信息(通常在Delphi源代码中输入,而不是在表单文件的文本视图中)可以通过阅读控制字符串找到,如它们实际上是在the online documentation中调用的。