3

我是一名 .Net 程序员,我目前正在调试一个 Delphi 应用程序,在进行过程中我遇到了以下错误:

错误信息

你能向我解释一下这个错误是什么,我该如何解决?

我是使用 Delphi 的新手。

4

2 回答 2

13

错误说明

呈现给您的错误是告诉您该表单上的组件未在 IDE 中注册,在本例中是来自 AlphaControls 库的 TsStatusBar:http ://www.alphaskins.com/

表单将在某个时候保存,并在表单上放置 TsStatusBar。当任何组件添加到表单上时,它们会在表单源文件 (*.pas) 和表单 dfm 中留下对该组件的引用。这就是您收到此错误的原因,因为找不到该组件,但链接到它的引用仍然存在。

选项 1 - 安装 AlphaControls 软件包

最好的选择是安装缺少的组件,这将解决您的错误问题,如您的问题所示。

选项 2 - 转换项目

AlphaControls 提供了一个将项目从标准 VCL 转换为 AlphaControls 的工具,反之亦然,这可能是一个比安装 AlphaControls 包或手动编辑源文件更简单的选择,转换工具是免费的。如果出现任何问题,请记住在转换之前进行备份。

选项 3 - 手动编辑源文件

您可以自己手动删除这些引用。但是请注意,如果您删除引用,那么 Delphi 将不再知道 TsStatusBar 曾经存在过,并且毫无疑问会有代码与该组件交互,这将产生编译器错误。

作为删除引用的替代方法,您可以将它们从 重命名TsStatusBarTStatusBar,这是 VCL 中的标准状态栏。在最坏的情况下,可能会出现一些需要纠正的小语法错误。如果您确实决定编辑表单源文件和 dfm 文件,那么我建议您在将表单加载到 IDE 之前执行此操作。

选项 4 - GExperts

您还可以安装 IDE Expert,例如 GExperts,它可以自动执行重命名/转换组件引用的过程。

但是,我建议不要在这种情况下删除或重命名引用,因为该项目似乎依赖于 AlphaControls 包。

概括

我可以看到使用了 AlphaControls 包中的更多组件,因此手动修复 TsStatusBar 错误只会解决部分问题。

如果项目必须保持其当前状态,那么安装 AlphaControls 包是要走的路,如果你能够编辑它,那么我还建议项目转换选项,这样你甚至不需要 AlphaControls 包。

如果你确实选择了安装包,重要的是要意识到一旦你安装了包,Delphi 就知道源文件在哪里可以编译。安装软件包后,从 IDE 转到 Menu > Tools > Options,然后您需要转到 Library 并将 AlphaControls 源的文件夹添加到库路径。源文件夹将是包含最多 .pas 文件的文件夹,但如果您不确定,可以添加所有文件夹。如果您不添加到库路径,那么 Delphi 在使用新组件时将无法编译。

于 2012-05-18T09:45:19.747 回答
2

您的 IDE 没有安装包含 TsStatusBar 的包。找到那个包,构建它,然后安装它。

设计时组件需要将其代码集成到 IDE 中。这是使用所谓的包来完成的。包项目的扩展名为 .dpk。你应该在你的版本控制系统中找到这个包项目。在 Delphi 中加载 .dpk 文件,从包管理器中单击 Build,最后在构建后单击 Install。现在 IDE 已经知道包含您的组件的包,您的表单将被加载。在您的组织中维护此代码的任何人都将能够帮助处理所有细节。

于 2012-05-18T07:54:09.797 回答