p;Form1.SetColor(AColor);
end;
procedure TMyAutoSrv.SetEditText(const AText: WideString);
begin
Form1.SetEditText(AText);
end;
initialization
TAutoObjectFactory.Create(ComServer, TMyAutoSrv, Class_MyAutoSrv,
ciMultiInstance, tmApartment);
end.
运行这个
程序一次,将会自动注册为自动化服务器.可以在注册表中的HKEY_CLASSES_ROOT主键下面找到其相关的
注册信息.
上面演示了如何开发一个自动化服务器,在这里我们将调用它.
新建一个
程序,添加一个Button,在其VAR区声明一个Variant变量: AutoSrv: variant
再在Button1中添加如下代码.
procedure TForm1.Button1Click(Sender: TObject);
begin
AutoSrv := CreateOleObject(''AutoSrv.MyAutoSrv''); {这个字符串就是自动化服务器的工程名加上CoClass Name}
Self.Caption := AutoSrv.Caption;
AutoSrv.Caption := ''HEHE'';
AutoSrv.SetColor(CLRed);
AutoSrv.SetEditText(''HAHA'');
end;
其中的CreateOleObject函数将会返回一个IDispatch类型的接口,正是IDispatch接口让我们的程序可以对自动化服务器接口的调用进行后期连接,比如我们在上面添加一句AutoSrv.Hello,
程序也能被编释通过,但在执行时就会出错. 使用Variant在执行效率上会比直接使用接口声明要慢一些.
运行并点击按钮,可以看到自动化服务
程序被加载,并按我们的代码设置了窗体色和EDIT1中的字串,呵呵,是不是很简单啊?
用其它语言也可以调用这个自动化服务器,比如VC,VB或包含脚本的网页.例如网络蚂蚁也是实现为自动化服务器来取得点击的网址地址.