25.2 创建一个ActiveX控件 D e l p h i的一步向导使得创建一个A c t i v e X控件相当简 单。然而,这个向导仅是开发复杂A c t i v e X控件的一个起 点。 为帮助你熟悉D e l p h i的A c t i v e X控件的能力,图2 5 - 1显 示了在New Items对话框中的A c t i v e X页。这个对话框通过 在主菜单中选择F i l e | N e w引出。在后面将对对话框中的内 容进行详细介绍。 在对话框中的第一个图标表示A c t i v e F o r m,双击它能 激活一个用来创建A c t i v e F o r m的向导。A c t i v e F o r m和通常 的A c t i v e X控件略微有点不同,在这里也被称为A c t i v e X控 件。 接下来的图标表示A c t i v e X控件,在这里双击能激活 创建A c t i v e X控件的向导,在下一节详细介绍。 第三个图标表示的是A c t i v e X库,双击这个图标能创建一个新的A c t i v e X服务器( D L L ),它将输出 图25-1 New Items对话框的ActiveX页 四个在第2 3章中讲到的服务器函数。这是把A c t i v e X控件加到项目中的起点。 再下一个图标代表自动化对象向导,在第2 3章中有详细介绍。 接下来一个图标是C O M对象向导,双击它能创建一个简单的C O M对象。在前面章节进行应用程 序扩展时,已经讲过这个向导了。 双击最左边的图标,能把一个属性页增加到当前的项目中,属性页能可视化地编辑A c t i v e X控件, 在本章的后面能看到一个增加属性页的例子。 最后一个图标代表类型库,双击这个图标将创建一个类型库,由于在A c t i v e X控件向导、A c t i v e F o r m 控件向导以及自动化对象中都自动增加类型库,这个图标实际很少用。 25.2.1 ActiveX控件向导 在New Items对话框的A c t i v e X页上双击A c t i v e X控件图标就 会激活A c t i v e X控件向导,如图2 5 - 2所示。 这个向导允许把一个V C L控件转换成一个A c t i v e X控件,另 外,它能指定A c t i v e X控件的类名、A c t i v e X控件的实现文件名和 A c t i v e X控件所在项目的名字。 在ActiveX控件向导中的VCL控件 在A c t i v e X控件向导的下拉列表框中有V C L控件的列表, 但并不是所有的V C L控件都在这个清单中,被列出来的V C L 控件要满足下面三个准则: • V C L控件必须在当前安装的设计包中(它必须在组件面 板中)。 • VCL控件必须是TWinControl的派生类,当前非窗口控件不能转换为ActiveX控件。 • V C L控件必须是还没有被R e g i s t e r N o n A c t i v e X ( )过程列出来的,R e g i s t e r N o n A c t i v e X ( )过程 在Delphi的在线帮助中介绍。 许多标准的V C L控件无法转换为A c t i v e X控件,是因为其中有些转换成A c t i v e X控件没有意 义,或者是因为转换需要大量的工作,超出了向导能提供的功能。T D B G r i d控件是一个很好的 V C L控件,但转换成A c t i v e X控件没有意义,因为它需要另一个类T D a t a S o u r c e作为它的属性, 而这用A c t i v e X是没法提供的。T Tr e e Vi e w在转换成A c t i v e X控件时需要大量的工作,因为在 TTreeView中的节点在ActiveX中很难表示。
然后菜单new_ativex_active control,选择你要继承的祖先控件。
添加自己要实现的新的属性、方法和事件。一两句话也说不清,你要买本书好好看看才行。
D e l p h i的一步向导使得创建一个A c t i v e X控件相当简
单。然而,这个向导仅是开发复杂A c t i v e X控件的一个起
点。
为帮助你熟悉D e l p h i的A c t i v e X控件的能力,图2 5 - 1显
示了在New Items对话框中的A c t i v e X页。这个对话框通过
在主菜单中选择F i l e | N e w引出。在后面将对对话框中的内
容进行详细介绍。
在对话框中的第一个图标表示A c t i v e F o r m,双击它能
激活一个用来创建A c t i v e F o r m的向导。A c t i v e F o r m和通常
的A c t i v e X控件略微有点不同,在这里也被称为A c t i v e X控
件。
接下来的图标表示A c t i v e X控件,在这里双击能激活
创建A c t i v e X控件的向导,在下一节详细介绍。
第三个图标表示的是A c t i v e X库,双击这个图标能创建一个新的A c t i v e X服务器( D L L ),它将输出
图25-1 New Items对话框的ActiveX页
四个在第2 3章中讲到的服务器函数。这是把A c t i v e X控件加到项目中的起点。
再下一个图标代表自动化对象向导,在第2 3章中有详细介绍。
接下来一个图标是C O M对象向导,双击它能创建一个简单的C O M对象。在前面章节进行应用程
序扩展时,已经讲过这个向导了。
双击最左边的图标,能把一个属性页增加到当前的项目中,属性页能可视化地编辑A c t i v e X控件,
在本章的后面能看到一个增加属性页的例子。
最后一个图标代表类型库,双击这个图标将创建一个类型库,由于在A c t i v e X控件向导、A c t i v e F o r m
控件向导以及自动化对象中都自动增加类型库,这个图标实际很少用。
25.2.1 ActiveX控件向导
在New Items对话框的A c t i v e X页上双击A c t i v e X控件图标就
会激活A c t i v e X控件向导,如图2 5 - 2所示。
这个向导允许把一个V C L控件转换成一个A c t i v e X控件,另
外,它能指定A c t i v e X控件的类名、A c t i v e X控件的实现文件名和
A c t i v e X控件所在项目的名字。
在ActiveX控件向导中的VCL控件
在A c t i v e X控件向导的下拉列表框中有V C L控件的列表,
但并不是所有的V C L控件都在这个清单中,被列出来的V C L
控件要满足下面三个准则:
• V C L控件必须在当前安装的设计包中(它必须在组件面
板中)。
• VCL控件必须是TWinControl的派生类,当前非窗口控件不能转换为ActiveX控件。
• V C L控件必须是还没有被R e g i s t e r N o n A c t i v e X ( )过程列出来的,R e g i s t e r N o n A c t i v e X ( )过程
在Delphi的在线帮助中介绍。
许多标准的V C L控件无法转换为A c t i v e X控件,是因为其中有些转换成A c t i v e X控件没有意
义,或者是因为转换需要大量的工作,超出了向导能提供的功能。T D B G r i d控件是一个很好的
V C L控件,但转换成A c t i v e X控件没有意义,因为它需要另一个类T D a t a S o u r c e作为它的属性,
而这用A c t i v e X是没法提供的。T Tr e e Vi e w在转换成A c t i v e X控件时需要大量的工作,因为在
TTreeView中的节点在ActiveX中很难表示。