D
Dr.johns
Unregistered / Unconfirmed
GUEST, unregistred user!
我作了一个处理业务逻辑的类,用于提供查询数据库的功能,作成了bpl包,但在调用的时候,不知该怎么办了。
代码大致如下。
逻辑部分:
//接口
IUserMaint = Interface(IInterface)
['{D6C85A99-0093-4EFC-AB01-8FD3C7F4BE88}']
function QryBySwdm(strSwdm : string):OLEVariant
function Brow : OLEVariant
function QryByBluy(StrKey : string) : OLEVariant
//查询数据库的类
TUserMaint = class(TComponent, IUserMaint)
private
UserDM: TMmcxSbDMF
public
function QryBySwdm(strSwdm : string):OLEVariant
function Brow : OLEVariant
function QryByBluy(StrKey : string) : OLEVariant
constructor Create(aOwner : TComponent)
override
destructor Destroy
override
end
注册的类名为“TUserMaint”
界面部分,该单元已包含了接口单元
在创建bpl导出的对象时出错了。
var
aUser : IUserMaint
aClass : TClass
begin
loadPackage('UserMaint.bpl')
aClass :=GetClass('TUserMaint')
aUser := aClass.create(inl);//出错了(矛盾的类型赋值),但不这样又如何调用TUserMaint中的方法呢?
end
本例暂时不考虑生存期的问题,如何解决。
在XWing给我例子中,调用的是窗体,刚好有个CreateForm函数,只有对aClass进行转型即可,application.CreateForm(TComponentClass(aClass),aForm)
但在本例中,查了一下,getClass后,aClass的类型是TPersistentClass,转型好像不行,应为TPersistentClass不能创建对象,所以我把原来TUserMaint的基类一直从TObject(还不能注册)升级到了TComponent,还是不行。请高手指点。
代码大致如下。
逻辑部分:
//接口
IUserMaint = Interface(IInterface)
['{D6C85A99-0093-4EFC-AB01-8FD3C7F4BE88}']
function QryBySwdm(strSwdm : string):OLEVariant
function Brow : OLEVariant
function QryByBluy(StrKey : string) : OLEVariant
//查询数据库的类
TUserMaint = class(TComponent, IUserMaint)
private
UserDM: TMmcxSbDMF
public
function QryBySwdm(strSwdm : string):OLEVariant
function Brow : OLEVariant
function QryByBluy(StrKey : string) : OLEVariant
constructor Create(aOwner : TComponent)
override
destructor Destroy
override
end
注册的类名为“TUserMaint”
界面部分,该单元已包含了接口单元
在创建bpl导出的对象时出错了。
var
aUser : IUserMaint
aClass : TClass
begin
loadPackage('UserMaint.bpl')
aClass :=GetClass('TUserMaint')
aUser := aClass.create(inl);//出错了(矛盾的类型赋值),但不这样又如何调用TUserMaint中的方法呢?
end
本例暂时不考虑生存期的问题,如何解决。
在XWing给我例子中,调用的是窗体,刚好有个CreateForm函数,只有对aClass进行转型即可,application.CreateForm(TComponentClass(aClass),aForm)
但在本例中,查了一下,getClass后,aClass的类型是TPersistentClass,转型好像不行,应为TPersistentClass不能创建对象,所以我把原来TUserMaint的基类一直从TObject(还不能注册)升级到了TComponent,还是不行。请高手指点。