我有两个 bpl 包:Core 和 Business,由一个应用程序使用。Core.bpl 包含单元 User.pas,其中包含 TUser 类。Core.bpl 中的 TUser 只有两个基本字段:登录和密码。我想用新字段扩展业务包中的 TUser 类:用户名。我想将业务单元命名为基本单元:User.pas。
因此,我在 Business.bpl 中创建了一个新单元 User.pas,并在其中放置了从 Core.bpl 扩展 TUser 的 TUser 类。现在我需要将 TUser 与 Core.bpl 和 TUser 与 Business.bpl 分开。我需要在这里使用“命名空间的力量”:)
我已经阅读了Embarcadero 文档页面。他们说可以通过命名来设置包的默认命名空间,例如 Base.Core。我将我的包命名为 Base.Core.bpl 和 Extra.Business.bpl。并且编译的文件是这样命名的。但是它们中的所有单元仍然像以前一样命名:User.pas -> User.dcu。
现在我在 User.pas 模块中有两个类 TUser:一个在包 Base.Core.bpl 中,另一个在包 Extra.Business.bpl 中。额外的 User.pas 看起来像
unit User;
interface
uses
Base.User;
type
TUser = class(Base.User.TUser)
end;
但是当我想编译它时,我有一个窗口:“删除用户。单位用户在所需的包基础中找到。”
例如,我该怎么做才能从 Base.User.TUser 继承新的 TUser,就像它可以在 Java 中一样?
PS 以防万一,我使用 Delphi XE2 IDE。