在自定义组件中找不到 Designintf.dcu
Posted
技术标签:
【中文标题】在自定义组件中找不到 Designintf.dcu【英文标题】:Designintf.dcu not found in custom component 【发布时间】:2014-09-08 11:24:01 【问题描述】:我在这里将一些自定义的 delphi 组件转换为最新的 delphi xe5。 我已经在delphi xe5 ide中构建了它,并且我用desgninf替换了它 designintf 和设计编辑器。 我还包括 designide.dcp 参考。 它成功构建和安装。 但是当我尝试使用和编译错误时有一些包 没有找到designinf.dcu。
我在互联网上研究解决方案 在 delphi 6 之后,他们的 delphi 没有重新分配他们的设计时间 包。但因为它在德尔福 5 和复杂的一个我可以投资 花时间划分设计和运行时代码并对其进行测试。
请提供任何替代解决方案。
谢谢 阿布舍克梅斯特里
【问题讨论】:
我认为我们需要更多细节。另外,请不要用不相关的标签标记问题。我在问题中看不到 xe2 或 xe 。应该是delphi-xe5 我使用了 xe 或 xe2 标签,因为对于那些使用旧组件并希望将任何版本从 delphi xe 迁移到他们面临的最新版本的人来说,这是一个常见的问题。请任何解决方案或方向建议 我本来打算推荐designide.dcp
,但你已经提到了。一种想法是,如果您将设计时和运行时单元混合在一起,您可能会遇到麻烦并可能会出现这样的错误。
您正在使用 xe5 并且应该这样标记它。是的,混合运行时和设计时是一个可能的原因。但是我们没有足够的细节可以说更多。
如果你需要帮助,你会做一个简单的例子来告诉我们你的场景是什么。
【参考方案1】:
我已经在 delphi xe5 ide 中构建了它,并且我替换了 desgninf 使用 designintf 和设计编辑器。
但是当我尝试使用和编译错误时有一些包 没有找到designinf.dcu来
根据您有限的描述,在我看来,您的某些软件包可能仍希望找到您重命名为 designintf.pas 的 designinf.pas 文件。
所以我会重新检查所有未编译的包,以便它们尝试包含正确的文件而不是不再存在的文件。
【讨论】:
【参考方案2】:对于在链接 DesignIntf 和/或 DesignEditors 时遇到困难的任何人,请尝试将 designide.dcp 添加到包的 Requires 文件夹中。例如,XE3 的 dcp 可以在以下位置找到:
C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\lib\win32\release
【讨论】:
我也必须将路径C:\Programme\Borland\Delphi7\Source\ToolsAPI
添加到搜索路径中【参考方案3】:
如果您使用非常旧的(Delphi 6 或更早版本)组件代码并尝试在较新的编译器中对其进行编译,则经常会发生此类错误。
designintf.dcu
单元和其他一些单元仅适用于与 IDE 链接的包,即仅适用于设计时代码。在旧版本的 Delphi 中,您可以获取源代码,但现在不再获取,因为这些单元所在的包不可再分发,它们专门用于 IDE。
因此,在 Delphi 6 和 7 时,IDE 警告您将在运行时使用的代码和只能在设计时使用的代码分开。您正在使用的旧组件还没有这样做。
所以尝试找出哪些代码实际上需要designintf.dcu
,将该代码移动到一个单独的单元,并使其使用原始单元。原来的单元现在是运行时代码,可以在任何地方使用,不需要designintf.dcu
。另一个单元是设计时单元,应该只链接到用于在 IDE 中安装组件的包中。
更多信息:Delphi FAQ
【讨论】:
您好先生,谢谢,是的,我正在修改的组件甚至使用 delphi 5,我想将其转换为 delphi xe5。但这里整个组件集并相互链接或继承,还有一些是在运行时创建的。因此,更改组件代码会导致重组或测试整个 senario。有什么办法可以避免吗?如果不参考一些可以帮助我设计这个组件和代码的书。这个组件为我设计和编码新的维度。 嗨,对不起,先生,但是今天我在 Delphi 5 上测试相同的组件代码,并且根据 Internet Borland 上的资源,在 Delphi 5 之后停止分发 designintf.dcu。那为什么在 Delphi 5 中也显示了与 DsgnIntF.Dcu 未找到相同的错误? 我猜您没有将所需的包放在设计时包的requires
部分。
我已经给了require包,因为它编译成功了。我在使用该组件时遇到的问题出现了错误。
我无法从这里判断为什么该组件不起作用,抱歉。以上是关于在自定义组件中找不到 Designintf.dcu的主要内容,如果未能解决你的问题,请参考以下文章
在自定义拦截器中找不到 RealConnection.noNewExchanges() 的错误符号
在自定义类下拉菜单 Xcode 8.3.2 中找不到自定义控制器类