ActiveX控件也就是一般所说的OCX控件,它是ActiveX技术的一部分。ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32位应用编程接口(Win32 API)和组件对象模型的一系列扩充和增强,目标是把计算机桌面环境与因特网环境集成起来,同时保护在Windows技术中现有的开发投资。微软的ActiveX技术根本上就是修改过的OCX技术,使它能够跨越Internet,主要是使用WWW来传递控件。
ActiveX控件可以被集成到很多支持ActiveX的应用当中去,或者直接用来扩展应用的功能,这些支持ActiveX的应用包括C++ Builder、Delphi、Visual dBASE、 Visual Basic、Visual C++、Internet Explorer、Netscape Navigator等。ActiveX控件还可以使用在因特网上,在网页上使用它来发布信息、处理与用户的交互,但是需要使用支持ActiveX的浏览器才能阅读这些网页。目前已经开发出来的ActiveX控件越来越多,由于ActiveX控件具有很好的特性,我们可以在编程的时候选择使用合适的控件来加快自己的应用开发。可以不夸张地说,ActiveX控件是Windows平台编程必不可少的法宝。
使用ActiveX控件是相对比较简单的。但是,开发ActiveX控件并不是一件简单的事情,必须要熟悉而不只是了解ActiveX技术才能开发出好的ActiveX控件。而COM、OLE等ActiveX技术对于一般的程序员来说,是比较复杂难懂的。所以,ActiveX控件的开发者一般都是“老鸟”级别的
程序员。
但是如果您有了Inprise公司的Borland Delphi,那又另当别论了。Delphi作为Windows平台上最优秀的
程序开发工具之一,为ActiveX控件的开发提供了强有力的支持,让您轻松地开发ActiveX控件。Delphi的开发者仅仅需要了解一些ActiveX控件的简单知识,就可以使用Delphi提供的工具来快速开发自己的ActiveX控件。本文详细介绍了利用Delphi所提供的工具来快速开发ActiveX控件的技巧。
一、ActiveX控件
要开发ActiveX控件,我们先得简单了解一下ActiveX控件的一些相关知识。在Delphi中,一个ActiveX控件由如下几个部分组成:VCL(可视化构件库)控件、属性、方法、事件,以及一个或者多个相关的类型库,其中每个部分都有各自的作用。现在对每个部分介绍如下:
1、VCL构件
在Delphi中,一个ActiveX控件是由一个或者多个VCL构件经过包装以后得到的。所以,要使用Delphi来开发ActiveX控件,必须先得开发出或者选择要进行包装的VCL构件。也正是由于这个原因,我们可以将Delphi里大量优秀的VCL构件包装成ActiveX控件,从而可以在别的不能够直接使用VCL构件的开发工具(如Visual Basic、Visual C++)里也能够使用到这些控件啦!
但是,在Delphi里可以用来做ActiveX控件的VCL构件必须是TWinControl的后代。如果想用一个TGraphiControl的子类做ActiveX控件,在大多数情况下只需要把它的基类变为TCustomControl即可。有的VCL构件是被
注册成非ActiveX控件的,例如EditControl,这些控件也不能做ActiveX控件。
2、类型库
类型库包含了控件的类型定义信息,提供了比接口更多的详细信息,是控件向它的宿主
程序提供服务信息的一种途径。类型库的目的是为其他应用和编程工具提供关于它包含的构件对象的信息。开发ActiveX控件时,Delphi把类型库信息存入一个.TLB文件中及一个对应的Pascal文件(.TLB文件的Pascal语言版本),编译时类型库将作为资源链入DLL或者EXE中。
类型库的元素包括:(1)类型库信息:包括类型库的总体信息和特征、当前类型库引用的其他类型库;(2)构件类:代表整个ActiveX控件,包含了提供给客户应用的接口;(3)接口属性和方法、事件;(4)枚举类型:一种用作数据类型的相关常量,可以用在类型库的其他地方定义属性和方法。
Delphi提供了一个类型库编辑器,用于观察或修改类型库,