gpt4 book ai didi

delphi - Delphi 3 中的接口(interface)支持相当于什么?

转载 作者:行者123 更新时间:2023-12-03 15:12:03 27 4
gpt4 key购买 nike

我支持用 Delphi 3 编写的应用程序,并且我想对源代码进行一些改进,同时等待将其升级到较新版本的 Delphi 的机会。我想使用的东西之一是接口(interface)。我知道 Delphi 3 已经有了接口(interface)的概念,但我无法找到等效的方法

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 中工作

关于delphi - Delphi 3 中的接口(interface)支持相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4333826/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com