我有两个bpl包:Core和Business,被一个应用程序使用。
Core.bpl包含有TUser类的User.pas单元。在Core.bpl中的TUser仅具有两个基本字段:Login和Password。
我想要通过扩展Business包中的TUser类来添加新字段UserName。并且我想将业务单元命名为基本单元:User.pas。
因此,我在Business.bpl中创建了一个新的User.pas单元,并在其中放置了从Core.bpl中扩展的TUser类。 现在我需要区分Core.bpl中的TUser和Business.bpl中的TUser。我需要在这里使用"命名空间的力量" :)
我阅读了Embarcadero doc page。他们说可以通过命名来设置默认名称空间,例如Base.Core。 我将我的包命名为Base.Core.bpl和Extra.Business.bpl。编译后的文件也是如此命名。 但它们中的所有单元仍然按照它们之前的名称命名:User.pas -> User.dcu。
现在我有两个类TUser在模块User.pas中:一个在Base.Core.bpl包中,另一个在Extra.Business.bpl包中。 Extra中的User.pas看起来像这样:
因此,我在Business.bpl中创建了一个新的User.pas单元,并在其中放置了从Core.bpl中扩展的TUser类。 现在我需要区分Core.bpl中的TUser和Business.bpl中的TUser。我需要在这里使用"命名空间的力量" :)
我阅读了Embarcadero doc page。他们说可以通过命名来设置默认名称空间,例如Base.Core。 我将我的包命名为Base.Core.bpl和Extra.Business.bpl。编译后的文件也是如此命名。 但它们中的所有单元仍然按照它们之前的名称命名:User.pas -> User.dcu。
现在我有两个类TUser在模块User.pas中:一个在Base.Core.bpl包中,另一个在Extra.Business.bpl包中。 Extra中的User.pas看起来像这样:
unit User;
interface
uses
Base.User;
type
TUser = class(Base.User.TUser)
end;
但是当我想要编译它时,弹出了一个窗口:"删除用户。在必需的包Base中找到单元User。"
我该怎么做才能像Java那样从Base.User.TUser继承新的TUser呢?
P.S. 以防万一,我使用的是Delphi XE2 IDE。
--default-namespace="Base.Core"
。 - Sertac Akyuz