电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

实现自动化对象的一种简易方法


发布日期:2022/10/26
 

Delphi 中不需要建立ActiveX Library不需要编辑TLB也能创建一个自动化对象

秘密就在于$METHODINFO这个没有文档描述的编译指令

首先我们定义一个TScriptableObject继承自TObjectDispatch (ObjComAutopas)

{$METHODINFO ON}

TScriptableObject = class(TObjectDispatch)

public

constructor Create;

end;

{$METHODINFO OFF}

{ TScriptableObject }

constructor TScriptableObjectCreate;

begin

inherited Create(Self False);

end;

因此 TScriptableObject 便是一个具备了特殊能力的一个类这个类是具有IDispatch接口的类 并且继承自TScriptableObject 的任何子类的Public & Published方法都能够从GetIDsOfNames检索出来并且可以Invoke

这样创建出的TScriptableObject的子类就是我们所需要的自动化对象这个对象我们可以用来作为WebBrowser的IDocHostUIHandler接口的GetExternal所需的IDispatch对象

上一篇:复杂的结构化存取(三):存取函数

下一篇:通过实例看VCL组件开发全过程