Mik*_*lov 5 delphi namespaces delphi-xe2
我有两个bpl包:Core和Business,由一个应用程序使用.Core.bpl包含单元User.pas,其中包含TUser类.Core.bpl中的TUser只有两个基本字段:Login和Password.我想在Business包中使用新字段扩展TUser类:UserName.我想将业务部门命名为基本单位:User.pas.
因此,我在Business.bpl中创建了一个新的User.pas单元,并放置了从Core.bpl扩展TUser的TUser类.现在我需要从Business.bpl中分离Core.bpl和TUser中的TUser.我需要在这里使用"名称空间的力量":)
我读过Embarcadero doc页面.他们说可以为包命名设置默认命名空间,例如Base.Core.我将我的包命名为Base.Core.bpl和Extra.Business.bpl.编译后的文件就是这样命名的.但是它们中的所有单元仍然按照以前的名称命名:User.pas - > User.dcu.
现在我在模块User.pas中有两个类TUser:一个在Base.Core.bpl包中,另一个在包Extra.Business.bpl中.User.pas in Extra看起来像
unit User;
interface
uses
Base.User;
type
TUser = class(Base.User.TUser)
end;
Run Code Online (Sandbox Code Playgroud)
但是当我想编译它时,我有一个窗口:"删除用户.单位用户在必需的包中找到."
我有什么办法从Base.User.TUser继承新的TUser,例如它可以在Java中?
PS为了以防万一,我使用Delphi XE2 IDE.
默认命名空间似乎是Portal蛋糕 - 这是谎言.您链接到的文档与该程序不匹配.
我制作了这个节目:
MyCompany.Programs.MyProgram.dpr
program MyCompany.Programs.MyProgram;
uses
MyUnit in 'MyUnit.pas';
begin
end.
Run Code Online (Sandbox Code Playgroud)
MyUnit.pas
unit MyUnit;
interface
implementation
end.
Run Code Online (Sandbox Code Playgroud)
并生成.dcu文件命名MyUnit.dcu.根据您链接到它的文档应该命名MyCompany.Programs.MyUnit.dcu.
我相信您必须在单元名称中明确指定名称空间.
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |