最近为了做一个项目,尝试了很多皮肤控件,其中一个使用ocx。尝试完后希望能够彻底删除,可是从component->import ActiveX Control中删除后再ActiveX标签中还是能够找到,而且,放置到窗口时会提示没有注册类别。
在网上搜索了一下相关的信息,希望能够彻底卸载这个控件。终于在下面这个地方找到了方法。
注销ActiveX控件
为了避免以后这个页面失效,下面简要的把这个方法记录下来。
通过上面的说明,我们知道,注册 ActiveX 控件主要有两大步骤:
n 将 ActiveX 控件注册到 Windows 消息系统中。
n 将 ActiveX 控件添加到 Delphi 的 VCL 库中。
所以,相应的,注销 ActiveX 控件的时候,是该过程的逆过程。即,首先我们必须从我们在上述注册了该 ActiveX 控件的包文件中将我们之前添加的 ActiveX 控件的相关信息删除;然后从 Windows 消息系统中反注册该 ActiveX 控件。
以我们刚添加的 ActiveFormX 控件为例,可以通过如下步骤注销改控件:
首先,在 Delphi 中点击 File->Open, 然后选择 Delphi 安装目录下的 ” /borland/delphi7/Lib/dclusr.dpk ” 文件 ( 该文件与我们前面注册 Active Form 指定的包文件对应,如果前面指定了其它文件,那么这里也应该打开相应的文件 ) 。
打开后,会出现如图 8 所示的 Package 管理器,在其内的 Contains 分支下,我们可以看到我们先前添加的 Active Form 控件的注册信息。如图 11 所示,在我们注册的 Active From 控件相应文件 ( 这里为 ActiveFormProj1_TLB.dcr 和 ActiveFormProj1_TLB.pas) 上分别点击右键;然后选择 ”Remove From Project” ;接着在弹出的组件删除提示框中点击 ”Yes” ;最后点击左上角的 ”Compile” 按钮对该包文件进行重新编译,如果没有发生错误,我们会发现我们先前注册的 Active From 从现在注册指定的相应面板上消失了,同时弹出更新成功提示信息,点击 ”OK” ;最后关闭 Package 管理器,在出现的 ”Save changes to project dclusr?” 保存信息提示框中选择 ”Yes” 即可。
接下来,从 Windows 消息系统中发注册该 ActiveX 控件,相应的,我们也有如下 3 中方法:
Ø 在命令行 (MS-DOS) 下定位到 ActiveFormProj1.ocx 文件所在目录,然后使用“ Regsvr32 ActiveFormProj1.ocx ”注册该 ActiveX 控件
Ø 在 Delphi 中,打开创建该 ActiveX 控件的工程 (*.dpr) 文件,然后选择 Run->Register ActiveX Server
Ø 点击 Component->Import ActiveX Control ,在打开的如图 6 所示的组件注册对话框的上部选中我们我们之前注册的 Active Form 控件,然后点击中部的 ”Remove” 按钮即可。
自此,我们就成功将我们先前创建的 ActiveX 控件从 Delphi 中完全清除了。
http://www.cnblogs.com/lijh_ray/archive/2010/10/14/1851594.html