在支持接口的Delphi 3中有什么相同之处?
发布时间:2020-12-15 09:27:38 所属栏目:大数据 来源:网络整理
导读:我支持用Delphi 3编写的应用程序,我想在等待有机会将其升级到更新版本的Delphi时对源代码进行一些改进.我想要使??用的一件事是Interfaces.我知道Delphi 3已经有了Interfaces的概念,但是我很难找到如何做等效的 if Supports(ObjectInstance,IMyInterface) the
我支持用Delphi 3编写的应用程序,我想在等待有机会将其升级到更新版本的Delphi时对源代码进行一些改进.我想要使??用的一件事是Interfaces.我知道Delphi 3已经有了Interfaces的概念,但是我很难找到如何做等效的
if Supports(ObjectInstance,IMyInterface) then 解决方法
编写自己的“支持”功能实现.在Delphi 2009中,您可以使用
function MySupports(const Instance: TObject; const IID: TGUID): Boolean; var Temp: IInterface; LUnknown: IUnknown; begin Result:= (Instance <> nil) and ((Instance.GetInterface(IUnknown,LUnknown) and (LUnknown.QueryInterface(IID,Temp) = 0)) or Instance.GetInterface(IID,Temp)); end; 测试: procedure TForm4.Button3Click(Sender: TObject); var Obj: TInterfacedObject; begin Obj:= TInterfacedObject.Create; if MySupports(Obj,IUnknown) then ShowMessage('!!'); end; 希望它能在Delphi 3中运行 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |