【问题标题】:Error opening a dfm file - Class xxxx not found打开 dfm 文件时出错 - 找不到类 xxxx
【发布时间】:2013-11-12 08:07:15
【问题描述】:

通过双击打开 dfm 文件时,出现以下错误:

Class TMyClass not found. Ignore the error and continue? Note: Ignoring the error may cause components to be deleted or property values to be lost.

当我点击取消时,我收到以下消息

Error creating form: Class TMyClass not found.

当我现在点击确定时,仅打开 pas 文件。

在 pas 文件中添加了 MyClass 单元(其中包含 TMyClass 定义),并且它的路径也添加到了我的搜索路径中(Ctrl 单击单元名称,将我带到单元文件)

在我看来一切都很好。我不知道为什么我会收到这个错误,为什么我无法在 RAD studio 中打开这个 dfm 文件?请帮忙。

【问题讨论】:

  • 请显示一些细节。请减少 .pas 和 .dfm。
  • 您已将此标记为 Delphi 7 和 Delphi XE4。是哪个?
  • 实际上,这可能不相关。您是否确保安装了 TMyClass 组件以便您也可以在设计时使用它?
  • @hvd - 它的 Delphi XE4。

标签: delphi vcl delphi-xe4


【解决方案1】:

要创建组件(您放置在表单上),Delphi IDE 应该知道它的名称并将其类加载到内存中。这意味着 - 它应该将该组件编译到二进制运行时包中,并且应该将相应的设计时包加载到 IDE 中,并且在加载期间它应该调用RegisterComponent

通常这一切都是在库安装期间完成的。所以如果你有 Delphi 7 的库,现在只需为 Delphi XE4 安装它。

如果您的库没有安装程序或该安装程序不知道 XE4,那么您必须手动注册这些组件,就像 Delphi 文档要求您那样做。 这是一个多步骤的过程,所以你可能需要从头开始重新做。但是,如果运气好的话,您可能能够重用已经为 Delphi 7 完成的工作。在最好的情况下,您只需在 XE4 中重新编译运行时和设计时包,然后将这些设计时包安装到更新的 IDE 中。

【讨论】:

  • 感谢您的回答。我查看了我的代码。称为 TBX 和 TB2000 的组件必须安装在 Delphi XE4 环境中,而这些组件已经安装在 Delphi 7 环境中。我下载了与 Delphi XE4 兼容的最新版本的 TBX 和 TB2000,构建并安装了它们的 dpk,并且错误消失了。
【解决方案2】:

在新版本的 Windows 10 之后,我出现了这个问题; 我通过更改可执行文件的权限进行了调整。我刚刚去掉了通知权限,又添加了一次;

https://support.microsoft.com/en-us/windows/change-notification-settings-in-windows-10-ddcbbcd4-0a02-f6e4-fe14-6766d850f294了解更多详情;

【讨论】:

  • 我怀疑这是对那个错误的解释。
【解决方案3】:

对我来说,当视觉控件在 pas 文件中声明为 TSomething 并在 DFM 文件中声明为 TSomethingElse 时,就会发生此错误。

解决方案是手动编辑 DFM 文件并将控件声明设置为正确的值 (TSomething)。

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 2013-12-24
    • 2019-12-20
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    相关资源
    最近更新 更多