在微软的Word里选择插入菜单,然后点击对象,会显示一个可以"插入"的控件的列表,然后我们就可以选择可以插入的ActiveX控件了,但有一个问题在这个列表中我们无法找到用Delphi编写的ActiveX控件。这是为什么呐?
究其原因是,用Delphi创建的ActiveX控件少注册了一个注册表项,而且类型库编辑器也没有提供一个选项允许我们改变ActiveX的属性,我们需要添加的这个注册表的键值处在注册表的HKEY_CLASSES_ROOT中ActiveX的类标示符部分。 就象下面
HKEY_CLASSES_ROOT->YourControl.TheClass->Insertable
最笨的办法是使用RegEdit来编辑注册表,更好的办法是通过程序来自动生成。
1. 打开包含ActiveX控件的实现单元。
2. 添加Uses Registry,Windows,….
3. 修改INITIALIZATION(初始化部分)添加类似下面的函数
procedure MoreKeys;
const
C_KEY: String = 'YourControl.TheClass'; // 你的控制标示符
var
oReg: TRegistry;
begin
oReg := TRegistry.Create;
try
oReg.OpenKey(HKEY_CLASSES_ROOT);
oReg.OpenKey(C_Key + '\Insertable',True);
finally
oReg.CloseKey;
oReg.Free;
end;
end;
initialization
TActiveFormFactory.Create(
ComServer,
TActiveFormControl,
... );
MoreKeys;
End.
一切OK了
此文章由 http://www.ositren.com 收集整理 ,地址为:
http://www.ositren.com/htmls/68686.html