我需要一个像TInterfacedObject这样的基类,但没有引用计数(因此是一种TNonRefCountedInterfacedObject)。
这实际上是第n次我需要这样的一个班,不知何故,我总是最后一次又一次地写我自己的书写(阅读:复制和粘贴)。我不能相信没有我可以使用的“官方”基础班。
在RTL实现IInterface中有没有基类,但没有引用计数,我可以从中导出我的类?
解决方法
在单元Generics.Defaults中定义了一个类TSingletonImplementation。提供德尔福2009及以上版本。
// A non-reference-counted IInterface implementation. TSingletonImplementation = class(TObject,IInterface) protected function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; function _AddRef: Integer; stdcall; function _Release: Integer; stdcall; end;