D
devecom
Unregistered / Unconfirmed
GUEST, unregistred user!
由于项目需要用到asp组件,但是我对这个不太了解,有一个问题想问问各位:
我要设计2个接口,每个接口公布自己的属性和方法,但是其中一个接口属于另外一个
的一部分,类似类中的一个继承,我表达好像不是和明确,应该能够理解吧。我应该怎么设计呢?
办法一:没通过
因为接口可以支持多重继承,我就像做成多重继承的方法,如:
Ttest = class(TASPObject, Itest)
private
x : integer;
protected
procedure OnEndPage
safecall;
procedure OnStartPage(const AScriptingContext: IUnknown)
safecall;
function Get_wr: Integer
safecall;
procedure Set_wr(Value: Integer)
safecall;
public
procedure initialize;override
end;
....
function Ttest.Get_wr: Integer;
begin
result := x;
end;
procedure Ttest.Set_wr(Value: Integer);
begin
x := value;
end;
procedure Ttest.initialize;
begin
inherited;
x := 0;
Set_wr(20);
end;
调用这个接口的 Get_wr方法将会返回20.
另外一个接口类继承自它:
TChildTest := class(TASPObject,IChildTest,Itest)
protected
procedure OnEndPage
safecall;
procedure OnStartPage(const AScriptingContext: IUnknown)
safecall;
public
end;
继承之后我应该怎么才能访问 Ttest中的 Get_wr方法呢?
方法二:我在TChildTest中定义一个成员,把TTest作为TChildTest的一个成员:
TChildtest = class(TASPObject, IChildtest)
protected
procedure OnEndPage
safecall;
procedure OnStartPage(const AScriptingContext: IUnknown)
safecall;
public
CT : Ttest
procedure initialize;override;
destructor destroy;override;
end;
implementation
uses ComServ
destructor TChildtest.destroy;
begin
if Assigned(CT) then
Ct.Free;
inherited;
end;
procedure TChildtest.initialize;
begin
inherited;
CT := TTest.Create;
end;
。。。
但是这样我在asp中连对象都无法创建
服务器对象 错误 'ASP 0177 : 80040111'
Server.CreateObject 失败
/childtest.asp,行8
ClassFactory 无法供应请求的类别
这中问题对于高手应该不难吧?帮忙回答一下,有什么好的方法,谢谢。
我要设计2个接口,每个接口公布自己的属性和方法,但是其中一个接口属于另外一个
的一部分,类似类中的一个继承,我表达好像不是和明确,应该能够理解吧。我应该怎么设计呢?
办法一:没通过
因为接口可以支持多重继承,我就像做成多重继承的方法,如:
Ttest = class(TASPObject, Itest)
private
x : integer;
protected
procedure OnEndPage
safecall;
procedure OnStartPage(const AScriptingContext: IUnknown)
safecall;
function Get_wr: Integer
safecall;
procedure Set_wr(Value: Integer)
safecall;
public
procedure initialize;override
end;
....
function Ttest.Get_wr: Integer;
begin
result := x;
end;
procedure Ttest.Set_wr(Value: Integer);
begin
x := value;
end;
procedure Ttest.initialize;
begin
inherited;
x := 0;
Set_wr(20);
end;
调用这个接口的 Get_wr方法将会返回20.
另外一个接口类继承自它:
TChildTest := class(TASPObject,IChildTest,Itest)
protected
procedure OnEndPage
safecall;
procedure OnStartPage(const AScriptingContext: IUnknown)
safecall;
public
end;
继承之后我应该怎么才能访问 Ttest中的 Get_wr方法呢?
方法二:我在TChildTest中定义一个成员,把TTest作为TChildTest的一个成员:
TChildtest = class(TASPObject, IChildtest)
protected
procedure OnEndPage
safecall;
procedure OnStartPage(const AScriptingContext: IUnknown)
safecall;
public
CT : Ttest
procedure initialize;override;
destructor destroy;override;
end;
implementation
uses ComServ
destructor TChildtest.destroy;
begin
if Assigned(CT) then
Ct.Free;
inherited;
end;
procedure TChildtest.initialize;
begin
inherited;
CT := TTest.Create;
end;
。。。
但是这样我在asp中连对象都无法创建
服务器对象 错误 'ASP 0177 : 80040111'
Server.CreateObject 失败
/childtest.asp,行8
ClassFactory 无法供应请求的类别
这中问题对于高手应该不难吧?帮忙回答一下,有什么好的方法,谢谢。