最近为了做一个项目,尝试了很多皮肤控件,其中一个使用ocx。尝试完后希望能够彻底删除,可是从component->import ActiveX Control中删除后再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中完全清除了。