为什么Delphi XE2不允许我将字体资源嵌入为RCDATA?

时间:2014-11-30 22:17:18

标签: delphi fonts ide delphi-xe2 embedded-resource

我想在我的EXE中嵌入.ttf字体资源并动态加载它。此特定方法期望资源为RCDATA类型。所以,我转到Project > Resources and Images...Add...,然后选择我的.ttf文件。将自动选择资源类型FONT,标识符仅为1。我将类型更改为RCDATA并输入我自己的资源名称。

问题:当我按Ok时,出现错误,FONT资源的标识符必须是数字值。但它不再是FONT类型,我已将其更改为RCDATA

我如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

(一起询问和回答,因为我确定其他人已经看到了这个问题)

这似乎只是IDE中的一个小错误。当您首次在此资源屏幕中选择.ttf文件时,请更改类型,按Ok而不更改标识符(保留1)。然后,重新打开相同的屏幕,将标识符更改为您自己的标识符,然后按Ok。它仅在您关闭并重新打开Resources and Images屏幕时才有效。

您当然也可以编写自己的.rc文件,并在没有此屏幕的情况下手动完成所有操作。

答案 1 :(得分:2)

与杰瑞说的不同,你可以简单地加载" Resources and Images...对话框中的字体文件。选择后,您可以将类型更改为RCDATA(右下角的组合框),如果已经这样做,则可以将名称更改为您选择的任何有效名称。

无需关闭并重新打开对话框

我在XE2和XE7中尝试了这个,它按预期工作。 FONT类型仅仅是字体文件的默认值。这可以在对话框中轻松更改。

这对我来说并不像是一个错误。加载字体文件时只是简单的默认行为。就像在编辑器中加载.pas文件时存在默认行为一样。


如果您想使用.rc文件,可以很容易地在编辑器中生成一个文件(扩展名为.rc的新文本文件),然后您可以将其添加到项目中。 IDE将负责其余的工作。除了当然编辑.rc文件外,无需手动执行任何操作。