Visual Basic ActiveX 部件的特性
使用 Visual Basic 可以创建的部件包括从代码库一直到可以自动执行的应用程序。使用完整的许可功能,可以创建和发布 ActiveX 的控件包,或者带有 ActiveX 文档的 Internet 应用程序,这些文档可以在 Internet 的浏览器中显示。使用 Visual Basic 企业版,可以在远程计算机上运行代码部件,比如业务规则的服务器。
图 1.1 显示的 Visual Basic 应用程序使用了一些部件,这些部件都是用 Visual Basic 建立的。
图 1.1 使用部件的 Visual Basic 应用程序

Visual Basic 的 ActiveX 部件可以用在 Internet 和内部网上。图 1.2 显示的是一位业务分析人员在家中办公时通过他桌上的计算机查看表格,而另一位销售代表通过使用Visual Basic的ActiveX文档在 Web 页上查看相同的信息。
Figure 1.2 Visual Basic 使 Internet 更活跃

应该建立哪种类型的部件?
对于所有的可选择的不同类型的ActiveX部件,如何来决定哪种类型的部件是最适合您的需求的呢?从功能的角度考虑这个问题,也许会给您以帮助:
- 如果需要提供服务的部件是不可视的,就要建立一个代码部件——或者是ActiveX Exe或者是ActiveX DLL。
- 如果所需要建立的部件能够与您的应用程序运行在同一个进程中,则应该建立一个ActiveX DLL。例如,能够执行复杂计算的部件就属于这种情况。
- 如果所需要建立的部件能够服务于多个应用程序,并且能够在远程计算机上运行,则应该建立一个ActiveX Exe。例如,一个执行税务规则的业务规则服务器端,最好被实现为一个ActiveX Exe。
- 如果您需要的是一个可视的部件,并且在设计时能够被拖放到一个应用程序中,那么应该建立的是ActiveX控件。例如,一个能够正确格式化并验证电话号码的“电话号码”控件,就属于这种情况;这样的控件无疑在许多应用程序中都是有用的。
- 如果您需要的是一个可视的部件,并且在运行时能够接管应用程序的窗口,那么应该选择ActiveX文档。上面的示例显示了一个能够在Web浏览器中浏览的“销售”应用程序,它重复桌面应用程序的功能。
无论选择建立哪种类型的ActiveX部件,Visual Basic都保证它们的可重用性。
建立部件的特性
下面是一些 Visual Basic 提供的创建软件部件的特性。
- 部件可以提供不同类型的对象,就象在相关的主题中描述的那样,这些主题包括“ActiveX 控件”、“ActiveX 文档”、“代码部件”以及“提供对象的应用程序”。
- 由部件提供的对象可以产生事件。可以通过企业版在主机进程或其它应用程序中处理这些事件,这样的应用程序甚至可以在远程计算机上运行。
- 部件可以是能识别数据的,并能直接绑定到任何数据源上而无需数据控件。您也可以创建充当数据源的 ActiveX 部件,以使其它对象绑定在其上。例如:您可以创建自己的数据控件(与 ADO 数据控件或远程数据控件类似),但不是通过 ADO 或 RDO 绑定,您可以绑定到一个平构文件或一个专有的二进制数据格式。
- 友元函数允许那些由部件提供的对象在内部彼此之间通信,使用这些对象的应用程序不需要知道这些通信。
- Implements 关键字允许向对象中增加标准接口。这些通用的接口使部件提供的对象可以具有多种表现形式,不管对象是由一个部件提供的还是有许多不同部件提供的。
- 可以使用枚举为所有部件类型提供命名常数。
- 可以为部件所提供的每个对象类选择缺省的属性或方法。
- 可以允许部件的使用者存取全局对象的属性和方法,不需要显式地创建对象的实例。
这些特性和其它有关部件类型的问题在“设计部件的一般准则”里有详细的描述。
详细信息 执行大计算量的任务时,把部件编译成本机代码将会有一些帮助。这个问题在《Visual Basic 程序员指南》的“再论编程”中讨论。