gpt4 book ai didi

在包 B 中找不到包 A 中注册的 Delphi 类

转载 作者:行者123 更新时间:2023-12-03 18:18:43 25 4
gpt4 key购买 nike

经过一些研究,我决定用不同的方式来表达这个问题:我有一个应用程序和 2 个包(BaseClasses 和 ClassImplementations)。BaseClasses 是通过在应用程序中使用一个单元来加载的 uses 子句:

uses
BaseClasses;

ClassImplementations是通过LoadPackages方式加载的:

LoadPackage("classImplementations.bpl");

在我的应用程序中,我调用位于 BaseClasses 中的解析器:

Parser.Parse(txt)

在我的基类中调用代码时,我有一个"is"条件,检查一个实现类是否是某个基类。

if classImpl is BaseClass then

此条件返回 false。

但是,如果我通过在我的应用程序 uses 子句中加载我的 ClassImplementations 包,则相同的条件返回 true:

uses
BaseClasses, ClassImplementations;

这意味着在包 ClassImplementations 中注册的类在包 BaseClasses 中不可用。

应用程序使用运行时包,包含 rtl 和 vcl。我看到在 classImplementations 中包含我的 registerclass 方法的初始化部分被调用,它确实在应用程序中找到了我需要的类,但在 BaseClasses 包中找不到

我错过了什么?

最佳答案

检查您的依赖项。第二个包“classImplementations.bpl”需要在其 requires 子句中包含第一个包。

此外,主可执行项目需要在项目选项的运行时包列表中列出第一个包。

关于在包 B 中找不到包 A 中注册的 Delphi 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22809811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com