gpt4 book ai didi

delphi - Delphi 中如何将接口(interface)转换为对象

转载 作者:行者123 更新时间:2023-12-03 14:37:19 24 4
gpt4 key购买 nike

在delphi 2009中,我有一个对IInterface的引用,我想将其转换为底层TObject

使用TObject(IInterface)显然在Delphi 2009中不起作用(尽管它应该在Delphi 2010中起作用)

我的搜索引导我到 a function that should do the trick ,但它对我不起作用,当我尝试调用返回对象的方法时,我得到了 AV。

我无法真正修改类,而且我知道这会破坏 OOP

最佳答案

除了依赖 Delphi 的内部对象布局之外,您还可以让对象实现另一个接口(interface),该接口(interface)将简单地返回对象。当然,只有当您首先有权访问对象的源代码时,这才有效,但如果您无权访问对象的源代码,您可能甚至不应该使用这些技巧。

interface 

type
IGetObject = interface
function GetObject: TObject;
end;

TSomeClass = class(TInterfacedObject, IGetObject)
public
function GetObject: TObject;
end;

implementation

function TSomeClass.GetObject: TObject;
begin
Result := Self;
end;

关于delphi - Delphi 中如何将接口(interface)转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4138211/

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