我已经尝试了所有常识性建议,例如确保文件在项目中以及在其他单元的使用条款中。
由于没有人发布解决方案,我尝试了Ken White和Wouter van Nifterick 的建议。
- 关闭项目并重新启动 IDE - 没有变化
- 在我系统上的每个驱动器中搜索 Events.pas 或 Events.dcu - 我的项目中只有一个。
唯一有效的,我不知道为什么,就是将 Events.pas 重命名为别的东西。我使用项目管理器重命名它并重新编译。所有的Undeclared Identifier
错误都消失了。我将其重命名为Events
,错误又回来了。谁知道?
出于好奇,我对系统上的每个 pas 和 inc 文件进行了文本搜索,以查看是否Events
在某处用作标识符(我知道它不应该有所作为,但......你永远不知道)。没有。没有调用变量、类型或函数Events
。
作为一个健全的检查,我创建了一个包含几个单元的简单项目,其中一个是Events
用几个类型声明调用的。所有其他单位都将其包含在其使用条款中。编译器解析类型标识符没有问题。我完全不知道为什么它Events
在我的另一个项目中卡住了。
更新
我终于弄清楚了为什么我会收到这个错误。我正在编写的软件包使用了开放工具 api(OTA),因此它需要该DesignIDE
软件包。DesignIDE
仅作为预编译的 dcp 和 bpl 提供,因此除了作为 IDE 的扩展点公开的少数接口单元之外,所有内容都缺少源。原来编译成的隐藏DesignIDE
单元之一叫做Events
. 直到我将包迁移到更高版本的 Delphi 并开始获取E2200 Package 'designide' already contains unit 'Events'
. 此错误消息未出现在 Delphi 2007 中。
我试图在更简单的包中隔离问题无法重现它,因为我已将DesignIDE
包从它的依赖项中排除,没有意识到它是错误的根源。